Spring boot 为Spring Security原始扩展启用sessionManagement.sessionFixation

Spring boot 为Spring Security原始扩展启用sessionManagement.sessionFixation,spring-boot,session-fixation,spring-security-saml2,Spring Boot,Session Fixation,Spring Security Saml2,我的团队有一个SpringBootWeb应用程序。我们最近在公司向客户提供的服务中添加了SAML支持。我们开发了一个基于SpringSecuritySAML1.0.6扩展的解决方案 我们的一个客户进行了审查,发现浏览器sessionId在成功登录后没有改变。这是一个默认情况下为主spring安全代码打开的功能,并通过sessionManagement.sessionFixation选项进行配置 我已经尝试在SAML配置中添加对它的引用,尝试了所有可能的配置选项,但似乎没有任何效果。下面是我们的W

我的团队有一个SpringBootWeb应用程序。我们最近在公司向客户提供的服务中添加了SAML支持。我们开发了一个基于SpringSecuritySAML1.0.6扩展的解决方案

我们的一个客户进行了审查,发现浏览器sessionId在成功登录后没有改变。这是一个默认情况下为主spring安全代码打开的功能,并通过sessionManagement.sessionFixation选项进行配置

我已经尝试在SAML配置中添加对它的引用,尝试了所有可能的配置选项,但似乎没有任何效果。下面是我们的WebSecurity配置适配器代码中的部分配置,用于配置HttpSecurity对象:

        http
                .apply(saml())
                .authenticationProvider(samlAuthenticationProvider())
                .userDetailsService(samlUserDetailsService)
                .successHandler(authenticationSuccessHandler())
                .failureHandler(new SimpleUrlAuthenticationFailureHandler("/"))
                .serviceProvider()
                .keyStore()
                .storeFilePath(samlProperties.getKeystore())
                .password(samlProperties.getKeystorePassword())
                .keyname(samlProperties.getDefaultKey())
                .keyPassword(samlProperties.getDefaultKeyPassword())
                .and()
                .sessionManagement().sessionFixation().changeSessionId()     

我看过一篇文章,其中提到需要手动配置SAML提供程序以使用为核心spring安全性定义的某些对象,但它没有专门处理sessionFixation配置

在用户名/密码登录期间,我可以在日志文件中看到会话Id开关,spring安全模块设置为跟踪:

2020-10-07 15:47:19.282 DEBUG 41443 S:A5787647 R:d429a48d --- [nio-8081-exec-1] s.s.w.c.SecurityContextPersistenceFilter : SecurityContextHolder now cleared, as request processing completed
2020-10-07 15:47:19.294 DEBUG 41443 S:C5DA158B R:67143c30 --- [nio-8081-exec-9] o.s.security.web.FilterChainProxy        : /initial-page at position 1 of 14 in additional filter chain; firing Filter: 'MetadataGeneratorFilter'
我不确定过滤器链是否提前终止,或者sessionFixation过滤器是否从未在SAML端配置过。有人知道我怎样才能让它工作吗