登陆过滤器

前几天领导部门对门户网站进行渗透测试,找到一个页面没有身份验证可以直接访问。我以前没有开发过网站,就在网上找了找相关材料,不过,说实话,虽然多,但是都不咋地。遇到这样那样的问题,不过幸好,解决掉了。

碰到的问题主要是:

(1)web.xml文档必须是utf-8编码的,我的nodepad默认的ANSI编码格式的。

(2)登陆页面,提交到loginaction.jsp去处理,我确没有将其过滤掉,只对登陆页面index.jsp去处理,结果是登陆上去了,但是一个空白页面,意思是经过验证,到了将用户名和密码提交到loginaction.jsp就被卡住了。

(3)jdk 版本不一致,原来eclipse可以配置版本的,汗颜,搞开发一年,确实不晓得。不过自己用eclipse时间确实不长,因为以前用的是netbeans。 ()

 (4)chain.doFilter(request, response);不能少的。

贴代码如下:

public class LoginFilter implements Filter {

 public void init(FilterConfig filterConfig) throws ServletException {
  // TODO Auto-generated method stub

 }

 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 glyxm = (String) session.getAttribute("xm");

  // 登陆页面无需过滤

  if (path.equals("/admin/userlogin.jsp")) {

   // 已经登陆,继续此次请求
   chain.doFilter(request, response);
   return;
  } else {
   // 判断如果没有取到员工信息,就跳转到登陆页面
   if (glyxm == null) {
    // 跳转到登陆页面
    servletResponse.sendRedirect(http://xxxx/xxx);
    return;
   } else {
    chain.doFilter(request, response);
   }

  }
  
 }

 public void destroy() {
  // TODO Auto-generated method stub

 }

}
xml的配置文档为:

<filter>
         <filter-name>login</filter-name>
         <filter-class>LoginFilter</filter-class>
     </filter>
 
     <filter-mapping>
         <filter-name>login</filter-name>
         <url-pattern>/xxx/*</url-pattern>
     </filter-mapping>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值