我有一个 Spring Boot Web 应用程序(Spring Boot 版本 2.0.3.RELEASE)并在 Apache Tomcat 8.5.5 服务器中运行。
谷歌浏览器最近实施的安全策略(自 80.0 起推出),要求应用新SameSite
属性,使跨站点 cookie 访问以更安全的方式而不是 CSRF。正如我什么也没有做相关的是和Chrome已设置默认值,SameSite=Lax
为第一方Cookie,我的第三方服务集成的一个失败,由于原因,铬是制约跨站点的cookie的访问时SameSite=Lax
,如果第三方响应来自POST
请求(一旦程序完成第三方服务重定向到我们的站点的POST
请求)。在那里 Tomcat 无法找到会话,因此它附加了一个新的JSESSIONID
(有一个新会话,前一个会话被终止)在 URL 的末尾。因此 Spring 拒绝该 URL,因为它包含由新JSESSIONID
append引入的分号。
因此,我需要更改JSESSIONID
cookie 属性 ( SameSite=None; Secure
) 并以多种方式进行尝试,包括 WebFilters。我在 Stackoverflow 中看到了相同的问题和答案,并尝试了其中的大部分,但最终无果而终。
有人可以想出一个解决方案来更改 Spring Boot 中的这些标头吗?