gpt4 book ai didi

java - 如何使用 Spring SAML 扩展在 SAML 单注销请求中包含 relayState 参数

转载 作者:行者123 更新时间:2023-12-01 09:11:37 35 4
gpt4 key购买 nike

我使用 Spring SAML 扩展PingFederate 作为 IDP 服务器。现在,当我从 SP(服务提供商)发起全局注销时,它只会使 SP session 无效,而不会使 IDP 服务器 session 无效。意味着即使在全局注销后,当我再次尝试登录(使用 SP 启动)时,它也允许直接登录,而无需询问用户登录凭据。

我注意到在 SAML 单一注销请求中缺少 relayState 参数,尽管其他 SP 应用程序中该参数运行良好(PingFederate 提供的演示 SP 应用程序)。我尝试在 securityContext.xml 文件中添加relayState属性(请参阅下面的代码片段),但relayState仍然不是注销请求参数的一部分。

<bean id="samlEntryPoint" class="org.springframework.security.saml.SAMLEntryPoint">
<property name="defaultProfileOptions">
<bean class="org.springframework.security.saml.websso.WebSSOProfileOptions">
<property name="relayState" value="http://192.168.1.73:8080/adeptia"/>
<property name="includeScoping" value="true"/>
</bean>
</property>
</bean>

请让我知道relayState参数的用途是什么、可能的值是什么以及如何将其包含在SAML注销请求中。

最佳答案

您应该能够通过扩展 SingleLogoutProfileImpl - 方法 sendLogoutRequest 来传递中继状态。您可以调用 context.setRelayState() 来获取值,然后调用 super 来完成其余的逻辑。

在响应阶段,中继值将在 processLogoutResponse 中可用,同样在上下文对象中可用。

Spring SAML 中的单点注销期间没有发送中继的显式功能。

关于java - 如何使用 Spring SAML 扩展在 SAML 单注销请求中包含 relayState 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40884662/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com