钟绍威

待到山花烂漫时,来从中陪我笑

JSESSIONID与SESSION

用spring security的时候遇到了一个很诡异的问题:

已经登录的用户,而且没有标记remember-me,在重启服务器之后还会显示已经登录状态

这就严重啦,这样子如果要在session中储存用户的信息,以后反复拿出来用的话,这个session在用户登录的时候set用户信息,那重启服务器之后,session中没有这个字段了,但是还是登录了,这就使得有的场景中得不到用户信息

解析一下发送的请求会发现,登录了之后每一个请求都会带有一个cookies,JSEESIONID:"xxxxxxxx"

这个JSESSIONID是服务器给每个用户定义的唯一的ID标识,用这个ID号就可以在SESSION容器中找到请求用户的SESSION了

所以当清空浏览器cookies了之后,就需要重新登录了(因为服务器没有接收到JSESSIONID,也就不能判断用户是否登录)

解决方案:

  1. 在<security:http>里面添加disable-url-rewriting="true"属性,是为了不让URLappend了JSESSIONID
  2. 同时在<security:logout>里面加上invalidate-session="true" delete-cookies="JSESSIONID"   目的是为了,用户退出的时候清空session以及删除JSESSIONID的cookies


查看原文:http://139.129.55.235/2016/05/30/jsessionid%e4%b8%8esession/
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。原文:wewill.top https://blog.csdn.net/noble510520/article/details/51540555
上一篇当子查询碰上NULL
下一篇SPRING SECURITY 拦截静态资源
想对作者说点什么? 我来说一句

jsessionid的简单说明

jsessionid

chunqiuwei chunqiuwei

2014-04-11 17:41:50

阅读数:38807

没有更多推荐了,返回首页

关闭
关闭