我有一个Web应用程序,因此我希望进行基于时间的会话,因此刷新页面或在另一个选项卡上重新加载将保持不变。因此,在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
行为并不奇怪,出于安全原因而存在。
该行为也是可配置的,但请确保您了解更改默认值的安全隐患。
通过sessionCookiePathUsesTrailingSlash中Context元素的属性进行配置server.xml。有关完整的详细信息,请参见Context文档。
sessionCookiePathUsesTrailingSlash
Context
server.xml