spring session 1.x与2.x 之间不兼容性问题

1、原因

spring session 1.x与2.x 同时在项目中使用时,导致session不一致,主要是因为1.x中默认的cookieSerializer(DefaultCookieSerializer )的 useBase64Encoding=false,而 spring-session 2.x 中默认的cookieSerializer(DefaultCookieSerializer ) 的 useBase64Encoding=true

2、解决方法

因此解决只需保证两边 useBase64Encoding 一致就行。目前,我们采用直接修改2.x useBase64Encoding 为主。

在使用spring session 2.x 工程添加以下配置。

@Bean
	public CookieSerializer cookieSerializer() {
		DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
		cookieSerializer.setUseBase64Encoding(false);
		//cookieSerializer.setCookieMaxAge(-1);
		return cookieSerializer;
	}

3、后续问题、以及解决方法

1.x项目session id 每次刷新页面都会改变
按照上述解决办法将2.x项目配置完成后,并重启。
1.x项目和redis未重启。
1.x项目和2.x项目使用统一浏览器进行访问,且浏览器未重启。
在上述情况下,发生问题:1.x项中的 session id 每次刷新页面都会改变。

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值