Tomcat不再更改会话ID

I. *_*OCK 2 security spring tomcat session-cookies

我有一个tomcat 8服务器,其中我有两个网络应用程序.我希望通过一次用户身份验证来授予对这两个应用程序的访问权限.

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

<Context useHttpOnly="false" sessionCookiePath="/">
Run Code Online (Sandbox Code Playgroud)

现在我面临的问题是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
Run Code Online (Sandbox Code Playgroud)

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

我该如何解决?

谢谢

Phe*_*nix 5

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

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

如果一组Web应用程序在此模式下运行,则更改会话ID会更加困难.您必须编写一个自定义Tomcat组件来为您执行此操作,即使这样,我也不确定您是否可以保证顺利更改.