spring-session-core排除某些接口不设置session

这里写自定义目录标题

    • 需求
    • 实现

需求

今天先写一下如何实现,之后再更新一篇如何发现这个问题的。
我们的项目使用了spring-session-core来存储共享session,存在redis中,然后在cookie中是设置了key为SESSION的session。但是我们有一些开放接口不需要经过这一套来鉴权,所以需要排除这些接口,不设置session。

实现

实现主要分两步,第一步继承CookieHttpSessionIdResolver ,然后把排除条件加进去

public class CustomCookieSerializer extends CookieHttpSessionIdResolver {

  @Override
  public void writeCookieValue(..) {
     if (needWriteCookie) { //判断条件根据自己的需求写
       super.writeCookieValue(..);  
     }
  }

}

第二步提供一个cookieSerializer来替代默认的

    @Bean
    public CookieSerializer cookieSerializer() {
        CustomCookieSerializer serializer = new CustomCookieSerializer ();
        serializer.setCookieName("GULISESSION");
        serializer.setCookiePath("/");
        // 设置cookie的作用域为父域名
        return serializer;
    }

这样就可以了。

你可能感兴趣的:(spring,spring,java,前端)