Spring boot 为Spring Security原始扩展启用sessionManagement.sessionFixation
我的团队有一个SpringBootWeb应用程序。我们最近在公司向客户提供的服务中添加了SAML支持。我们开发了一个基于SpringSecuritySAML1.0.6扩展的解决方案 我们的一个客户进行了审查,发现浏览器sessionId在成功登录后没有改变。这是一个默认情况下为主spring安全代码打开的功能,并通过sessionManagement.sessionFixation选项进行配置 我已经尝试在SAML配置中添加对它的引用,尝试了所有可能的配置选项,但似乎没有任何效果。下面是我们的WebSecurity配置适配器代码中的部分配置,用于配置HttpSecurity对象: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
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端配置过。有人知道我怎样才能让它工作吗