Spring boot SpringBoot with Spring SAML/Spring会话:在使用IDP进行身份验证后创建新会话

Spring boot SpringBoot with Spring SAML/Spring会话:在使用IDP进行身份验证后创建新会话,spring-boot,spring-saml,spring-session,Spring Boot,Spring Saml,Spring Session,问题概述 我有一个SpringBoot2.0应用程序,它使用SpringSAML充当服务提供者(SP)。由于我需要在我的环境中部署多个服务实例,所以我使用Spring会话的JDBC会话来提供一个集中的会话存储。在访问该SP内的发现URL页面时,我只看到创建了一个会话。多重访问利用同一个会话,我看到会话的上次访问时间已更新,我看到为我的“app.localhost”域创建的会话cookie。成功使用IDP进行身份验证(并重定向回我的SP)后,将创建一个新会话,并且无法完全处理SAMLRespons

问题概述

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

我正在使用Spring Boot SAML SP参考实现,根据:

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

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

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


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

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

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

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

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

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