Springboot中登录后关于cookie和session拦截案例

2021-03-31 18:24

阅读:703

标签:状态   拦截器   inter   slf4j   pos   ring   single   cookies   遍历   

一、前言

1、简单的登录验证可以通过Session或者Cookie实现。
2、每次登录的时候都要进数据库校验下账户名和密码,只是加了cookie 或session验证后;比如登录页面A,登录成功后进入页面B,若此时cookie过期,在页面B中新的请求url到页面c,系统会让它回到初始的登录页面。(类似单点登录sso(single sign on))。
3、另外,无论基于Session还是Cookie的登录验证,都需要对HandlerInteceptor进行配置,增加对URL的拦截过滤机制。

二、利用Cookie进行登录验证

1、配置拦截器代码如下:

public class CookiendSessionInterceptor implements HandlerInterceptor {     

@Override     
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {         
      log.debug("进入拦截器");         
      Cookie[] cookies = request.getCookies();         
      if(cookies!=null && cookies.length>0){             
            for(Cookie cookie:cookies) {                
                  log.debug("cookie===for遍历"+cookie.getName());                 
                  if (StringUtils.equalsIgnoreCase(cookie.getName(), "isLogin")) {                     
                        log.debug("有cookie ---isLogin,并且cookie还没过期...");                     
                       //遍历cookie如果找到登录状态则返回true继续执行原来请求url到controller中的方法                     
                        return true;                 
                              }             
                        }         
                  }         
            log.debug("没有cookie-----cookie时间可能到期,重定向到登录页面后请重新登录。。。");         
            response.sendRedirect("index.html");         
            //返回false,不执行原来controller的方法         
            return false;     }     

@Override     
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {     }     
@Override     
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {     } }```

Springboot中登录后关于cookie和session拦截案例

标签:状态   拦截器   inter   slf4j   pos   ring   single   cookies   遍历   

原文地址:https://www.cnblogs.com/tenghw/p/13557327.html


评论


亲,登录后才可以留言!