SpringBoot with Spring SAML / Spring Session:使用IDP进行身份验证后会创建



>问题概述

我有一个使用 Spring SAML 的 Spring Boot 2.0 应用程序充当服务提供商 (SP(。 由于我需要在我的环境中部署服务的多个实例,因此我正在使用Spring Session的JDBC会话来提供集中式会话存储。 访问此 SP 中的发现 URL 页面时,我只看到一个会话已创建。 多次访问使用同一会话,我看到会话的LAST_ACCESS_TIME更新,并且我看到为我的域"app.localhost"创建的会话cookie。 使用 IDP 成功进行身份验证(并重定向回我的 SP(后,将创建一个会话,并且无法完全处理 SAMLResponse,因为存储在 HTTP 会话中的关联 SAML 上下文与上一个会话相关联(并且仍驻留在数据库中(。

我正在使用Spring Boot SAMLSP参考实现,每个:SpringBoot SAML

对于 IDP,我已经尝试了 ssocircle.com 和 samltest.id,当被重定向回我的 SP 时,我得到了一个新的会话。 重定向后,SP 似乎不再可以使用现有 Cookie。

我已经验证了会话cookie是我设置的域"app.localhost"的一部分。

任何帮助将不胜感激,因为我正在尝试让此SP的多个实例正常工作。

@Vladimír舍费尔?

经过大量挖掘和检查Spring Session创建的会话cookie,通过将SameSite cookie属性设置为空字符串(即未设置(,我能够通过从IDP重定向时创建的新会话。

我创建了以下春季会话 cookie 序列化程序:

@Bean
public CookieSerializer cookieSerializer() {
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
serializer.setSameSite("");
return serializer;
}    

最新更新