Tomcat不再更改会话ID

时间:2014-04-30 14:59:15

标签: spring security tomcat session-cookies

我有一台tomcat 8服务器,其中有两个网络应用程序。我希望通过一次用户身份验证来访问这两个应用程序。

我是通过设置sessionCookiePath =" /"来完成的。在catalina / conf / context.xml中,如下所示:

<Context useHttpOnly="false" sessionCookiePath="/">

现在我遇到的问题是tomcat不再更改会话ID了。我收到了一条警告信息。

Warn org.springframework.security.web.authentication.session.SessionFixationProtectionStrategy - your servlet container did not change the session id when a new session was created

在链接上,据说tomcat默认处理这个问题。 http://www.tomcatexpert.com/blog/2011/04/25/session-fixation-protection

我该如何解决?

由于

1 个答案:

答案 0 :(得分:5)

是的,这是预期的行为。文档暗示了这一点,但是 没有明确说清楚。

设置sessionCookiePath="/"被视为支持的特殊情况 portlet实现。一个Web应用程序获得会话全部 任何Web应用程序的后续会话也配置了 sessionCookiePath="/"始终会获得相同的会话ID。这有用 即使会话无效并创建了新会话。

如果一组Web应用程序在此模式下运行,则更改会话 ID要困难得多。您必须编写自定义Tomcat组件 它适合你,即使那时我也不确定你能保证顺利 转过来。