身份验证后无法重置 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
希望对您有所帮助。
我想在登录后重置 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
希望对您有所帮助。