2017-02-14 109 views
1

我已被授权执行SAML2.0 SSO概念验证,并且已成功整合了spring saml扩展,这非常简单,谢谢作者。虽然,我仍然无法得到RelayState参数的工作,但我总是在接收SP上得到它的值为null在SP上接收到的IdP发起的saml总是将RelayState设为空

我使用SSOCircle's公共IdPIdP启动的流(虽然我们没有封锁了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端的任何配置启用/禁用所以不知道。

如果有人可以分享他们类似的经验,我将不胜感激。

+0

请提供网络跟踪与http请求的流程。这是验证RelayState是否被IDP传递的最好方法。 – Hos

+0

@hos我很抱歉回复这件事,并非常感谢您的回复。没有任何答复超过15天,我已经放弃并没有监控更新。我之后可能还没有监控到的另一个原因是,在我的发展之后,我开始采用另一种IDP(我开发的是针对公众IDP ssocircle)的Pre-prod。它在新的IDP中运行得很顺利,所以我认为问题出在ssocircle上,而不是我的代码。事实上,最近我意识到ssocircle IDP也开始工作,不确定他们是否进行了一些修复。顺便说一下,网络跟踪在发布到我的SP时没有携带RelayState。 – Pete

回答

0

我不再有这个问题,但没有明确添加任何修补程序。我最好的猜测是ssocircle在修正了他们的结尾之后,RelayState网址开始流传至终。 感谢@hos的帮助。不想让问题保持开放,请将此添加为答案。

相关问题