我有一个网络应用程序,我想要基于时间的 session ,以便刷新页面或在另一个选项卡上重新加载时保持相同。 所以,在 web.xml 中我有:
<servlet-mapping>
<servlet-name>any</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
<cookie-config>
<name>sid</name>
<max-age>1800</max-age>
</cookie-config>
</session-config>
根据我的上下文名称,cookie 设置了适当的过期时间,其路径为/app/。 现在,如果我向/app/或/app/main 之类的 URL 发出请求,cookie 就会被传递。但是,/app 的根上下文路径不会发送 cookie。即使我添加...
<path>/app</path>
...在上面的cookie-config中,cookie在浏览器中的路径都是/app/。 这种奇怪的行为有什么解决方法吗?
Apache Tomcat/8.0.28
最佳答案
这种行为并不奇怪,这是出于安全原因。
该行为也是可配置的,但请确保您了解更改默认设置的安全隐患。
配置是通过 server.xml
中 Context
元素的 sessionCookiePathUsesTrailingSlash
属性进行的。有关完整详细信息,请参阅 Context documentation .
关于不为上下文根请求发送 Tomcat session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34221831/