zoukankan      html  css  js  c++  java
  • 登录拦截器

    @WebFilter(urlPatterns = "/*", filterName = "loginFilter")
    public class LoginFilter implements Filter {

    private static final Logger logger = LoggerFactory.getLogger(LoginFilter.class);
    private static final String[] NOT_CHECH_URL = {"/login","/json",".js",".css",".ico",".jpg",".png","/scriptJob/executedScheduleTask","/createReport/ReportSchedule"};
    // private static final String[] NOT_CHECH_URL ={""};
    /**
    * 是否只允许Post
    */
    private boolean postOnly = true;

    /**
    *
    * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)

    /**
    *
    * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
    * javax.servlet.ServletResponse, javax.servlet.FilterChain)
    */
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    throws IOException,ServletException {
    // chain.doFilter(request,response);
    /*if (postOnly && !"POST".equals(((HttpServletRequest)request).getMethod())) {
    throw new IOException ("不支持以Post以外的方式登录");
    }*/
    ((HttpServletResponse)response).setHeader("SET-COOKIE", "JSESSIONID=" + ((HttpServletRequest)request).getSession().getId() + ";Secure;HttpOnly");

    String uri = ((HttpServletRequest)request).getRequestURI();
    if(notCheckUri(uri)){
    chain.doFilter(request, response);
    return ;
    }
    HttpSession session = ((HttpServletRequest)request).getSession();
    String contextPath = ((HttpServletRequest) request).getContextPath();
    if(session == null || session.getAttribute("username") == null) {
    ((HttpServletResponse)response).sendRedirect(contextPath+"/autocreatecase/login");
    return;
    }
    else {
    //合法的请求,放行
    chain.doFilter(request, response);
    return;
    }
    }

    private boolean notCheckUri(String uri) {
    boolean flag = false;
    for(String str : NOT_CHECH_URL){
    flag = uri.contains(str);
    if (flag){
    return true;
    }

    }
    return flag ;
    }


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

    }


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

    }
    }
  • 相关阅读:
    作业帮:最长连续序列(头部插入)
    作业帮:字符串反转(头部插入)
    作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)
    JVM系列之七:HotSpot 虚拟机
    JVM系列之六:内存溢出、内存泄漏 和 栈溢出
    JVM系列之四:运行时数据区
    JVM系列之五:垃圾回收
    JVM系列之三:类装载器子系统
    JVM系列之二:编译过程
    JVM系列之一:JVM架构
  • 原文地址:https://www.cnblogs.com/chexiedaping/p/12204709.html
Copyright © 2011-2022 走看看