在SP上启动单点登录(SSO),SP和IdP都是自托管的,因此可以灵活地编辑这两者.我使用spring-security-saml2-core-1.0.1.RELEASE来托管spring应用程序(spring-security-3.2.8,spring-mvc-3.2.14.RELEASE),它在URL上为多个租户提供服务:
sp1. example.org,
sp2.example.org
使用Shibboleth IdPv3.2.1托管IdP,它可以与托管在不同SP服务器上的多个应用程序一起使用.
我正在尝试从sp1和sp2的同一服务器发送不同的元数据.我通过覆盖SAMLContextProviderImpl 在这里阅读了一个关于多租户SP 和这里的自定义逻辑populatePeerEntityId,同样我试图覆盖populateLocalEntityId因为我无法使用alias.
有人可以为Overriding提供一个示例代码populateLocalEntityId来处理多租户元数据吗?
SP配置如下图所示:
<!-- Filters for processing of SAML messages -->
<beans:bean id="samlFilter" class="org.springframework.security.web.FilterChainProxy">
<filter-chain-map request-matcher="ant">
<filter-chain pattern="/saml/login/**" filters="samlEntryPoint" />
<filter-chain pattern="/saml/logout/**" filters="samlLogoutFilter" />
<filter-chain pattern="/saml/metadata/**" filters="metadataDisplayFilter" />
<filter-chain pattern="/saml/SSO/**" filters="samlWebSSOProcessingFilter" />
<filter-chain pattern="/saml/SSOHoK/**" filters="samlWebSSOHoKProcessingFilter" />
<filter-chain pattern="/saml/SingleLogout/**" filters="samlLogoutProcessingFilter" />
<filter-chain pattern="/saml/discovery/**" filters="samlIDPDiscovery" />
</filter-chain-map>
</beans:bean>
<!-- Handler deciding where to redirect user after successful login -->
<beans:bean id="successRedirectHandler" class="com.example.web.sso.CustomAuthenticationSuccessHandler" …Run Code Online (Sandbox Code Playgroud)