我有一台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
我该如何解决?
由于
答案 0 :(得分:5)
是的,这是预期的行为。文档暗示了这一点,但是 没有明确说清楚。
设置sessionCookiePath="/"
被视为支持的特殊情况
portlet实现。一个Web应用程序获得会话全部
任何Web应用程序的后续会话也配置了
sessionCookiePath="/"
始终会获得相同的会话ID。这有用
即使会话无效并创建了新会话。
如果一组Web应用程序在此模式下运行,则更改会话 ID要困难得多。您必须编写自定义Tomcat组件 它适合你,即使那时我也不确定你能保证顺利 转过来。