SameSite
是一種新的cookie
屬性值,用來防止CSRF
攻擊,具體可看:
https://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html
它有兩個屬性
Strict
:嚴格模式,完全禁止第三方 Cookie
,跨站點時,任何情況下都不會發送 Cookie
。
Lax
:寬松模式,允許Get
請求的第三方Cookie
,其他請求依然禁止。
Spring-session
默認把SameSite
設置成Lat,使用spring session
進行session
管理,當其他系統需要跨域請求這個系統時就會出現每一次請求的SESIONID
都會變得情況。
需要對生成的cookie
進行修改,去掉SameSite
屬性或者改為None
@Bean
public CookieSerializer httpSessionIdResolver(){
DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
cookieSerializer.setCookieName("token");
cookieSerializer.setUseHttpOnlyCookie(false);
cookieSerializer.setSameSite(null);
return cookieSerializer;
}