原生自动登录(filter和cookie实现)

来源:互联网 发布:qt网络编程项目java 编辑:程序博客网 时间:2024/05/21 00:55

对已经有登录状态的请求不自动登录 对路径含有登录相关的不自动登录


 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {        HttpServletRequest request = (HttpServletRequest) req;        HttpServletResponse response = (HttpServletResponse) resp;        //如果服务器没有session登录状态就   尝试     自动登录        if (request.getSession().getAttribute("userSession") == null) {            //如果请求路径是登录注册相关 也不要自动登录了            if(!request.getRequestURI().contains("ogin")){                //尝试     自动登录                Cookie[] cookies = request.getCookies();                Cookie autoLogin = CookieUtil.getCookie(cookies, "autoLogin");                //如果勾选了自动登录 就开始自动登录                if (autoLogin != null) {                    User user = new User();                    user.setName(autoLogin.getValue().split("-")[0]);                    user.setPassword(autoLogin.getValue().split("-")[1]);                    LoginService loginService = new LoginService();                    user = loginService.login(user);                    //如果密码正确 登录成功                    if (user != null) {                        request.getSession().setAttribute("userSession", user);                    }                }            }        }        chain.doFilter(req, resp);    }


原创粉丝点击