在前后端分离解决跨域问题过程中,利用CORS解决跨域问题,但是在后台获取的session都是不一致。
后来在Response-Header中看到这么一行
Set-Cookie: SESSION=Y2IyN2MwOGItYmNmYy00YjI5LTg1YjgtNWFkNmIzZjAzZmI3; Path=/; HttpOnly; SameSite=Lax
响应Cookie默认返回 SameSite=Lax ,百度了一下它的作用:不能携带cookie进行跨域post访问
所以导致 浏览器的Cookie-session 机制失效,服务端每次访问都创建新的session
解决办法
@Bean
public CookieSerializer httpSessionIdResolver() {
DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
cookieSerializer.setCookieName("SESSION");
cookieSerializer.setUseHttpOnlyCookie(false);
cookieSerializer.setSameSite(null);
return cookieSerializer;
}
评论