身份验证后无法重置 JSESSIONID

Cannot Reset JSESSIONID After Authentication

我想在登录后重置 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 容器。

谢谢。

感谢 here 的见解,这是一个 Resin 问题。

基本上是在做

的组合
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

希望对您有所帮助。