一尘不染

不为上下文根请求发送Tomcat会话cookie

tomcat

我有一个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


阅读 275

收藏
2020-06-16

共1个答案

一尘不染

行为并不奇怪,出于安全原因而存在。

该行为也是可配置的,但请确保您了解更改默认值的安全隐患。

通过sessionCookiePathUsesTrailingSlashContext元素的属性进行配置server.xml。有关完整的详细信息,请参见Context文档

2020-06-16