SpringSession的Strategy策略方式(简,待补充)

SessionRepository作用:
当建立会话时,创建Session,将一些用户信息(例如用户 ID)存到Session中,并通过SessionRepository 将Session 持久化。

HeaderHttpSessionStrategy作用:
在 HTTP 请求头中设置我们的 sessionId,以及从请求头中获取我们的 sessionId。
但是如果项目使用这种方式的话,sessionid是不会设置到cookie中的,所以调用登录接口时,该用户并没有真正登录成功, 运行UserModel userModel = (UserModel) SecurityContextHolder.getContext().getAuthentication().getPrincipal();这句代码时会报401错误,没有权限说明该用户未登录

   @Bean
   public HttpSessionStrategy httpSessionStrategy() {

       HeaderHttpSessionStrategy httpSessionStrategy = new HeaderHttpSessionStrategy();
       if (headerName == null)
           headerName = "Session";
       httpSessionStrategy.setHeaderName(headerName);
       return httpSessionStrategy;

   }

CookieHttpSessionStrategy作用:
提供通过 cookie 的方式来传递 sessionId。cookie 参数名默认为 SESSION

   @Bean
   public HttpSessionStrategy httpSessionStrategy() {

       CookieHttpSessionStrategy httpSessionStrategy = new CookieHttpSessionStrategy();
       if (cookieName == null)
           cookieName = "Session";
       httpSessionStrategy.setCookieName(cookieName);
       return httpSessionStrategy;
   }

你可能感兴趣的:(SpringSession的Strategy策略方式(简,待补充))