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,并重启浏览器就完美解决了。