请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

spring session测试发现key不对(SESSION和JSESSIONID?)

按照老师的说法对Spring Session进行配置,测试的时候发现无法获取用户信息,检查发现key不对,老师给的视频中Cookie的Name是SESSION,但是我的是JSESSIONID,并且往Redis中存key/value的时候,对应的用来做标识的key不是和老师一样用的Cookie的Value,而是另外一个值,具体如下图:

web.xml配置https://img1.sycdn.imooc.com//szimg/5aae455f00019d9507850217.jpg

applicationContext-spring-session:https://img1.sycdn.imooc.com//szimg/5aae45900001e6c313670560.jpg

cookie:https://img1.sycdn.imooc.com//szimg/5aae45ad0001a9a017040288.jpg

redis:https://img1.sycdn.imooc.com//szimg/5aae45be0001f81207050190.jpg

实在是不明白这是为啥,求解答,谢谢!

正在回答 回答被采纳积分+3

2回答

Geely 2018-03-18 23:11:21

你好,亲爱的同学,这个是会变的,没有关系哈,千万不要纠结在这块。没有问题的。

因为每个jvm 会根据时间来生成jsessionId,另外这个替换成UUID也是可以的,只要保证redis和cookie上是一致的。

0 回复 有任何疑惑可以回复我~
  • 提问者 KLordy #1
    可是这样由于集群中用户信息的key不是用的cookie中的这个value,导致获取用户信息的时候查询到的User一直为空呀。。 这才是主要问题,我代码和老师的一样,但是就是无法获取到用户信息。。
    回复 有任何疑惑可以回复我~ 2018-03-22 22:15:04
  • Geely 回复 提问者 KLordy #2
    你好,同学,集群用户信息的key,是这样的流程,我们在后端生成任意一个uuid,然后把它存在用户浏览器的cookie上,下次用户请求的时候我们拿到这个cookie,里面的uuid和cache里的uuid做对比,如果存在用户的登陆信息,就认为是登陆状态。
    回复 有任何疑惑可以回复我~ 2018-03-25 20:48:44
  • Geely #3
    你的截图里面显示并没有把response里面的cookie种到浏览器上,看看cookieutil那个里面 writecookie的方法。
    回复 有任何疑惑可以回复我~ 2018-03-25 20:49:30
polo哦 2018-03-18 22:34:45

spring-session是会将原sessionid进行转换成新的字符串的哈,可能是为了防止别人知道真实的sessionid,可以看源码debug哟同学

0 回复 有任何疑惑可以回复我~
  • 提问者 KLordy #1
    老哥,主要我现在登录成功后,无法获取用户信息。。
    回复 有任何疑惑可以回复我~ 2018-03-22 22:16:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信