【spring-session】 1.x与2.x 不兼容

前言

  • A项目使用spring mvc,且spring-session版本为:1.3.1.RELEASE
  • B项目使用spring-boot,且spring-session版本为:2.0.2.RELEASE
  • A项目和B项目均使用同一个redis进行session共享。

问题

A项目和B项目获取的session不一致不一致。

原因

因 spring-session 1.x 中默认的cookieSerializer(DefaultCookieSerializer )的 useBase64Encoding=false,而 spring-session 2.x 中默认的cookieSerializer(DefaultCookieSerializer ) 的 useBase64Encoding=true

解决办法

将B项目中的 useBase64Encoding=true 改为 useBase64Encoding=false

其它

问题:A项中的 session id 每次刷新页面都会改变

  • 按照上述解决办法将B项目配置完成后,并重启。
  • A项目和redis未重启。
  • A项目和B项目使用统一浏览器进行访问,且浏览器未重启。

在上述情况下,发生问题:A项中的 session id 每次刷新页面都会改变。

重启浏览器后,再次操作,则正常。

参考

https://blog.csdn.net/szydn/article/details/87914158

发布了284 篇原创文章 · 获赞 54 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/sayyy/article/details/104198555