【问题标题】:How to have a custom cookie name in spring security如何在 Spring Security 中自定义 cookie 名称
【发布时间】:2013-05-20 19:20:17
【问题描述】:

我有两个应用程序AB 在同一台服务器上运行,具有不同的端口。由于 cookie 不是特定于端口的,因此这两个应用程序使用相同的 cookie JSESSIONID。当我登录其中一个时,我会被另一个踢出。

所以我需要修改每个应用程序的 cookie 名称。我怎样才能有一个自定义的 cookie 名称? 如果有帮助,我正在使用 spring security。


问题已解决
正如迈克尔指出的那样,我根本不需要更改 JSESSIONID 名称。两个应用程序都使用相同的URL/Path,这就是第二个cookie 替换第一个cookie 的原因。

【问题讨论】:

    标签: jakarta-ee cookies spring-security session-cookies jsessionid


    【解决方案1】:

    您不应更改 JSESSIONID cookie 的名称。 cookie 不是特定于端口的,而是特定于应用程序路径的。默认行为是根据应用程序路径设置 JSESSIONID cookie,并且来自一个应用程序的 cookie 不应干扰第二个应用程序的 cookie。我将 spring-security-samples-contacts-3.1.0.RELEASE.war 复制两次到同一服务器的 webapp 文件夹:test.war 和 contacts.war。 我已经在同一个浏览器中打开了这两个应用程序。 我使用 Fiddler,我看到以下内容: 当我登录联系人应用程序时,Tomcat 将 cookie 设置为路径 contacts:

    Set-Cookie: JSESSIONID=408F79D16A8665C73F5C30D66B102DA6; Path=/contacts/; HttpOnly
    

    与测试应用类似:

    Set-Cookie: JSESSIONID=ECAE9734E9A277F1E96D678BB67E558B; Path=/test/; HttpOnly
    

    然后,我可以毫无问题地同时处理两个应用程序

    【讨论】:

    • 其实JSESSIONIDs的值是不一样的。但是,一旦我登录其中一个应用程序,我就会被另一个应用程序抛弃。不过,我还有两个问题,1) 我的问题可能是什么? 2) 什么是 fiddler,我在哪里可以找到它?
    • Fiddler 是一个免费代理,允许拦截 HTTP 请求和响应:fiddler2.com。它可以帮助您了解您的问题。此外,将您的 Spring Security 配置文件添加到问题中可能会很有用。
    • 虽然这不是问题的答案,但你一路走来告诉我一个观点。所以作为一个谢谢你我赞成你的回答。
    猜你喜欢
    • 2022-01-10
    • 2015-07-09
    • 2013-03-20
    • 1970-01-01
    • 2013-09-12
    • 2014-01-02
    • 2015-11-18
    • 2016-09-04
    • 2020-09-24
    相关资源
    最近更新 更多