SetCookie属性值失效解决方案

SpringSecurity框架是基于Cookie-Session机制来进行认证和授权的,在跨域时基于谷歌浏览器最新的SameSite策略,会无法携带Cookie导致无法进行身份认证。

 

网上的很多跨域Cookie配置教程大都不涉及SameSite属性的设置,其实在2019年以后不修改SameSite的属性请求头就无法跨域携带Cookie了。

 

谷歌浏览器对SameSite的属性设置了三个值:Lax(默认)、Strict(最严格)、None(可以跨域携带Cookie);

同时,当把SameSite设置为None值后会自动对安全协议进行限制,只能使用Https协议,所以还需要把该安全限制关闭;

 

解决方案如下:

在新版谷歌浏览器(未更新的浏览器可能搜不到这两个配置项)打开下面两个链接

chrome://flags/#same-site-by-default-cookies

chrome://flags/#cookies-without-same-site-must-be-secure

这两项设置为Disabled,并重启浏览器就完美解决了。

 

posted @ 2021-08-16 10:56  onecyl  阅读(385)  评论(0编辑  收藏  举报