身份验证后无法重置 JSESSIONID
Posted
技术标签:
【中文标题】身份验证后无法重置 JSESSIONID【英文标题】:Cannot Reset JSESSIONID After Authentication 【发布时间】:2018-09-15 13:20:48 【问题描述】:我正在尝试在登录后重置 JSESSIONID,但我不能。我尝试了以下方法:
...
HttpSession ghostSession = request.getSession(false);
ghostSession.invalidate();
request.getSession(true);
...
// some more manipulations of the ghostSession here.
...
但是 JSESSIONID 没有被重置。我在这里想念什么吗?是因为在 ghostSession
失效后对其进行的操作会阻止 JSESSIONID 被重置?
顺便说一句,我使用 Resin 4.X 作为我的 Web 容器。
谢谢。
【问题讨论】:
【参考方案1】:感谢here 的见解,这是树脂问题。
基本上是在做组合
request.getSession(false).invalidate();
request.getSession(true);
不会触发 Resin 重置 JSESSIONID。
另外,HttpSession.changeSessionId()
仅在 Servlet 3.1 之后才受支持,Resin 4.0.X 不支持 Servlet 3.1。
我最终做的是调整 Resin 的会话处理。 IE。在<session-config>
内将<reuse-session-id>
设置为false。
我希望这会有所帮助。
【讨论】:
以上是关于身份验证后无法重置 JSESSIONID的主要内容,如果未能解决你的问题,请参考以下文章
带有 JSON 的 Spring security facebook 身份验证插件不会创建 jsessionid
JSESSIONID 或 X-AUTH-TOKEN 在 Spring boot 中对同一用户进行身份验证时重复
Spring Security 3.1.4:由于anonymousUser身份验证无法访问目标页面