【问题标题】:set session cookie attribute "Domain" on java-spring-tomcat在 java-spring-tomcat 上设置会话 cookie 属性“域”
【发布时间】:2016-04-20 21:45:47
【问题描述】:

如何在 tomcat 服务器上为我的 spring 项目设置会话 cookie 属性“域”?我正在使用 Spring Security 和 HTTPS 目前我有以下:

Set-Cookie: JSESSIONCookie: JSESSIONID=DEAC4422AB4E28A7062C08724C8BCFAA; Path=/myapp/; Secure; HttpOnly.

但我想要这个

Set-Cookie: JSESSIONCookie: JSESSIONID=DEAC4422AB4E28A7062C08724C8BCFAA; Path=/myapp/; Secure; Domain=.localhost; HttpOnly.

我尝试使用 cookie-config 将域属性放入 web.xml。 我曾尝试使用 spring session [CookieHttpSessionStrategy],但这不起作用。

有类似 TomcatContextCustomizer 之类的东西,但这不起作用[实际上我在配置它时可能犯了一些错误]

另外,如果在 localhost 上运行,我应该设置什么域?

obj.setDomain("localhost");//or
obj.setDomain(".localhost");//or
obj.setDomain("127.0.0.1");

以上哪一项是正确的?

【问题讨论】:

    标签: java spring spring-mvc tomcat cookies


    【解决方案1】:

    你可以使用tomcat的配置属性:sessionCookieDomain

    用于为此上下文创建的所有会话 cookie 的域。如果设置,这将覆盖 Web 应用程序设置的任何域。如果未设置,将使用 Web 应用程序指定的值(如果有)。

    <context  sessionCookiePath="/myapp/" sessionCookieDomain=".localhost">
    ...
    </context>
    

    在全局配置 config/context.xml 或特定于应用程序的上下文文件中。

    @见Tomcat configuration documentation

    【讨论】:

    • 谢谢这工作。虽然我无法找到本地主机的 sessionCookieDomain 值。因此登录失败,因为未发送“会话”cookie
    猜你喜欢
    • 2015-11-16
    • 1970-01-01
    • 2014-11-27
    • 2013-11-19
    • 2012-12-23
    • 1970-01-01
    • 2020-04-11
    • 2018-08-26
    • 1970-01-01
    相关资源
    最近更新 更多