在 SP 上收到的 IdP 发起的 saml 始终具有 RelayState 为空

IdP initiated saml recieved on SP always has RelayState as null

我的任务是实施 SAML2.0 SSO 概念验证,并且我已经成功集成了 spring saml 扩展,这非常简单,感谢作者。虽然,我仍然无法让 RelayState 参数起作用,但我总是在接收 SP.

时得到它的值 null

我正在使用 SSOCircle's public IdPIdP 启动流程(尽管我们没有阻止 SP 启动模式)并附加 RelayStateURL.

我正在尝试使用 SAMLRelayStateSuccessHandler,我可以从 SAMLCredential 实例中获取 RelayState 参数,但它总是 null。我将它追溯到 HTTPPostDecoder.doDecode(MessageContext messageContext) 方法(HTTP post 绑定),它在那里也是空的。我还跟踪了浏览器网络 url 并注意到 SP 消费者端点 post url 即 /saml/SSO 包含 SAMLResponse 但没有 RelayState 参数(我的理解是它将是一个单独的参数)。

我觉得 IdP 可能没有将 RelayState 发送到我的 SP,但也没有在 IdP 端看到 enable/disable 的任何配置,所以不确定。

我将不胜感激有关调试此问题的建议,或者如果有人可以分享他们的类似经验。

我不再有这个问题,但也没有明确添加任何修复。我最好的猜测是 ssocircle 在他们的末端进行了修复,之后 RelayState url 开始为我端到端流动。 感谢@hos 的帮助。不想让问题悬而未决,所以将其添加为答案。