public void doFilter( ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpSession session = request.getSession(); Authorization auth = AuthorizationManager.getAuthorization(session); if (log.isDebugEnabled()) { log.debug("session auth=" + auth); } // 如果从session中无法取得,则从cookie中取 if (auth == null) { Cookie cookie = Util.getCookie(request, Constants.AUTH_USER_COOKIE); Cookie autoLogin = Util.getCookie(request, Constants.AUTOLOGIN_COOKIE); if (log.isDebugEnabled()) { log.debug("cookie=" + cookie); log.debug("autoLogin="******"utf8")); LoginModel model = new LoginModel(); model.setAutoLogin(Boolean.parseBoolean(autoLogin.getValue())); model.setUsername(username_password[0]); model.setPassword(username_password[1]); model.setIp(request.getRemoteAddr()); try { AuthorizationManager.saveAuthorization(session, userService.loginWithoutValidCode(model)); } catch (BBSException e) { guestLogin(session); log.warn(e); } } else { guestLogin(session); } } chain.doFilter(servletRequest, servletResponse); }
private void guestLogin(HttpSession session) { AuthorizationManager.saveAuthorization(session, new Guest()); }