我已被授权执行SAML2.0 SSO
概念验证,并且已成功整合了spring saml
扩展,这非常简单,谢谢作者。虽然,我仍然无法得到RelayState
参数的工作,但我总是在接收SP
上得到它的值为null
。在SP上接收到的IdP发起的saml总是将RelayState设为空
我使用SSOCircle's
公共IdP
与IdP
启动的流(虽然我们没有封锁了SP启动模式),并在URL追加RelayState
。
我试图使用SAMLRelayStateSuccessHandler
,哪儿能找到从SAMLCredential
实例RelayState
参数,但它始终null
。我将它追溯到HTTPPostDecoder.doDecode(MessageContext messageContext)
方法(HTTP post binding),并且它在那里也是空的。我也跟踪了浏览器网络的URL,注意到SP消费者端点发布url,即/saml/SSO
包含SAMLResponse
,但没有RelayState
参数(我的理解是它将是一个单独的参数)。
我觉得IdP
可能没有发送的RelayState
我的SP,但还没有看到在IdP
端的任何配置启用/禁用所以不知道。
如果有人可以分享他们类似的经验,我将不胜感激。
请提供网络跟踪与http请求的流程。这是验证RelayState是否被IDP传递的最好方法。 – Hos
@hos我很抱歉回复这件事,并非常感谢您的回复。没有任何答复超过15天,我已经放弃并没有监控更新。我之后可能还没有监控到的另一个原因是,在我的发展之后,我开始采用另一种IDP(我开发的是针对公众IDP ssocircle)的Pre-prod。它在新的IDP中运行得很顺利,所以我认为问题出在ssocircle上,而不是我的代码。事实上,最近我意识到ssocircle IDP也开始工作,不确定他们是否进行了一些修复。顺便说一下,网络跟踪在发布到我的SP时没有携带RelayState。 – Pete