当前位置: 移动技术网 > IT编程>开发语言>Java > Java web过滤器验证登录防止未登录进入界面

Java web过滤器验证登录防止未登录进入界面

2019年07月22日  | 移动技术网IT编程  | 我要评论

北京下巴整形,谷春立夫人朱丽娟,从前有个太监

今天用ssh2写了个简单的系统,发现了一个问题,我这系统必须先登录成功才能进入主页,但我在浏览器里直接输入主页地址,发现也能进入,这个肯定不好,毫无安全性可言,后经查资料发现需要登录过滤器,就试了下,发现果然可以避免未经登录即可进入主页的危险,下面是我整理出的详细步骤:

1.首先写一个权限过滤filter类,实现filter接口

import java.io.ioexception;
import javax.servlet.filter;
import javax.servlet.filterchain;
import javax.servlet.filterconfig;
import javax.servlet.servletexception;
import javax.servlet.servletrequest;
import javax.servlet.servletresponse;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import javax.servlet.http.httpsession;
public class loginfilter implements filter {
 @override
 public void init(filterconfig filterconfig) throws servletexception {
  // todo auto-generated method stub
 }
 @override
 public void dofilter(servletrequest request, servletresponse response,
   filterchain chain) throws ioexception, servletexception {
  // 获得在下面代码中要用的request,response,session对象
  httpservletrequest servletrequest = (httpservletrequest) request;
  httpservletresponse servletresponse = (httpservletresponse) response;
  httpsession session = servletrequest.getsession();
  // 获得用户请求的uri
  string path = servletrequest.getrequesturi();
  //system.out.println(path);
  // 从session里取员工工号信息
  string empid = (string) session.getattribute("empid");
  /*创建类constants.java,里面写的是无需过滤的页面
  for (int i = 0; i < constants.nofilter_pages.length; i++) {
   if (path.indexof(constants.nofilter_pages[i]) > -1) {
    chain.dofilter(servletrequest, servletresponse);
    return;
   }
  }*/
  // 登陆页面无需过滤
  if(path.indexof("/login.jsp") > -1) {
   chain.dofilter(servletrequest, servletresponse);
   return;
  }
  // 判断如果没有取到员工信息,就跳转到登陆页面
  if (empid == null || "".equals(empid)) {
   // 跳转到登陆页面
   servletresponse.sendredirect("/jingxing_oa/login.jsp");
  } else {
   // 已经登陆,继续此次请求
   chain.dofilter(request, response);
  }
 }
 @override
 public void destroy() {
  // todo auto-generated method stub
 }
}

2.然后在web.xml里配置需要登陆权限验证的jsp文件:

  a.如果是某个具体的jsp文件(如a.jsp)需要登陆验证

<!-- 配置登陆过滤器 -->
<filter>
  <filter-name>login</filter-name>
  <filter-class>com.jingxing.oa.filter.loginfilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>login</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

b.如果是某一个目录(如a/目录)整个目录下的文件都需要登陆验证:

<!-- 配置登陆过滤器 -->
 <filter>
  <filter-name>login</filter-name>
  <filter-class>com.jingxing.oa.filter.loginfilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>login</filter-name>
  <url-pattern>/a/*</url-pattern>
 </filter-mapping>

以上所述是小编给大家介绍的java web过滤器验证登录防止未登录进入界面,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网