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;
}
