我正在迁移到 spring 5.X,并为名为 colombiaonline.com 的域配置了 cookieName“CUSTSESSION”的 DefaultCookieSerializer
。该 session 使用RedisHttpSessionConfiguration
存储在redis中。
springSecurityFilterChain
定义在 Spring 应用上下文中的 springSessionRepositoryFilter
之后。
应用程序部署在 Tomcat 8 上。(context.xml
sessionCookieDomain
设置为“colombiaonline.com”)
应用程序的 URL 是 dev.colombiaonline.com。
现在我的问题是—— 创建了两个 cookie
- CUSTSESSION 是使用配置的域 colombiaonline.com 创建的。
- JSESSIONID 是为域 dev.colombiaonline.com 创建的,这不是预期的。
如何阻止创建 JSESSIONID,因为它会导致问题?
最佳答案
我能够解决这个问题。只有浏览器缓存导致了此问题。配置是正确的,一旦我以隐身方式打开我的网站,它就对我有用。
但是,我们还需要注意一件事,那就是“sameSite”属性。它的默认值为“Lax”,与“None”不同。如果您在站点之间跳转并希望正确管理 session ,请正确配置 SameSite,就像我之前的情况一样,它没有,但在迁移到 5.x 后,它被设置为“Lax”,这导致了问题。 请参阅https://security.stackexchange.com/questions/168365/is-setting-same-site-attribute-of-a-cookie-to-lax-the-same-as-not-setting-the-sa
关于java - 如果将 Spring 5.X 的 DefaultCookieSerializer 与 Tomcat 8 一起使用,如何防止创建 JSESSIONID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57062766/