发现问题
目前的项目使用spring-session + redis 实现的session共享,在开发PC端的时候发现,两个应用之间访问请求头会出现两个session,自然会被踢出登录。
为什么?
session即是cookie 应该是唯一的才对,为什么会出现两个同名session,一定path或者domain不同才会这样,仔细一看果然,发现path不同,应用a的path为/a 应用b的path为/b
到底为什么?
开始扒源码,看看spring是怎么创建这个session的。之前已经看过spring-session的源码了解了实现原理,知道了我们配置的过滤其实就是org.springframework.session.web.http.SessionRepositoryFilter