Spring Session 跨域時 Cookie SameSite 問題


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM