【问题标题】:Tomcat session cookie is not sent for context root request没有为上下文根请求发送 Tomcat 会话 cookie
【发布时间】:2015-12-11 10:54:44
【问题描述】:

我有一个网络应用程序,我想要基于时间的会话,以便刷新页面或在另一个选项卡上重新加载保持相同。 所以,在 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

【问题讨论】:

    标签: tomcat servlets


    【解决方案1】:

    这种行为并不奇怪,出于安全原因。

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

    通过server.xmlContext 元素的sessionCookiePathUsesTrailingSlash 属性进行配置。详情请参阅Context documentation

    【讨论】:

    • 谢谢。因此,如果在同一个域中我没有另一个名称以当前配置的上下文名称开头的上下文,那么我可以安全地使用此属性,并省略 URL 中的尾部斜杠?
    猜你喜欢
    • 2015-11-08
    • 2012-11-01
    • 2011-05-18
    • 2020-04-28
    • 2015-09-20
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多