我尝试在登录后重置JSESSIONID,但我不能。我尝试过以下方法:
...
HttpSession ghostSession = request.getSession(false);
ghostSession.invalidate();
request.getSession(true);
...
// some more manipulations of the ghostSession here.
...
但是JSESSIONID没有重置。我在这里想念什么吗?这是因为在ghostSession
失效后操纵distinct-values
会阻止JSESSIONID被重置吗?
我使用Resin 4.X作为我的网络容器BTW。
谢谢。
答案 0 :(得分:0)
感谢here提供的见解,这是树脂问题。
基本上做
的组合request.getSession(false).invalidate();
request.getSession(true);
不会触发Resin重置JSESSIONID。
仅Servlet 3.1支持HttpSession.changeSessionId()
,而Resin 4.0.X不支持Servlet 3.1。
我最终做的是调整Resin的会话处理。即在<reuse-session-id>
内将<session-config>
设置为false。
我希望这会有所帮助。