java后端 session getid()不一致

问题遇到的现象和发生背景

开发项目vue2+java!
vue前端已经处理好,

img


后端一处理好了:
拦截器xml配置

img


拦截器代码:

img


后端服务器代码跨域处理:

img

问题相关代码,请勿粘贴截图

结果,

img

img


获取到的请求头一样,但是session的id却不一样!

运行结果及报错内容

报错:通过session拿到的数据为空

img

我的解答思路和尝试过的方法

很多方法,却无能发解决

我想要达到的结果

跨域问题就会导致session不一致,mainSql.java中553行应该是有对象为空,调用属性或是方法时报空指针。
如有帮助,欢迎采纳!

用的什么浏览器测试的,是chrome吗,在新版本的chrome中有一个sameSite的设置,默认是不发送第三方的cookie的

@Configuration
@EnableSpringHttpSession
public class SessionConfig {
    @Bean
    public SessionRepository sessionRepository() {
        return new MapSessionRepository(new ConcurrentHashMap<>());
    }

    @Bean
    DefaultCookieSerializerCustomizer cookieSerializerCustomizer() {
        return new DefaultCookieSerializerCustomizer() {
            @Override
            public void customize(DefaultCookieSerializer cookieSerializer) {
                cookieSerializer.setSameSite("None");
//                cookieSerializer.set
                cookieSerializer.setUseSecureCookie(true); // 此项必须,否则set-cookie会被chrome浏览器阻拦
//                cookieSerializer.setUseHttpOnlyCookie(false);
//                cookieSerializer.setCookieMaxAge(1440);
//                cookieSerializer.setUseBase64Encoding(false);
            }
        };
    }
}

前端使用的nginx么,nginx有配置可以不改变session,那个配置我忘了,你可以网上搜下

你可以改用token的方式,就不会出现这种问题了

可以使用Spring Session进行会话共享:
https://blog.csdn.net/qq_42280739/article/details/85013999