【发布时间】:2018-07-17 20:49:45
【问题描述】:
我浏览了这里的论坛并阅读了一些主题,但我认为我的问题没有答案。话虽如此,我绝不是 SAML 专家,所以我读到的一些线程是用有光泽的眼睛这样做的:)。
我继承了一些使用 OpenSAML(在 SP 端)生成请求并将其发送到 ADFS 实现的代码。我正在研究的问题是,用户总是返回到相同的 url,不管初始请求是否指向网站的深层链接。现在,在 ADFS 方面,我知道返回到 SP 的重定向是静态的,这无济于事,但我 99.9% 确信我们没有将任何重定向值传递给提供程序。根据我的研究,我认为我应该使用 RelayState 来传递值,以便将其回显给我,以便我可以在处理 SAML 响应后使用它。
我的问题是我不清楚如何首先通过 RelayState。在我正在使用的代码中,我可以看到一个定义的类——
public class HTTPRedirectTransportSender extends HTTPServletTransportSender
{
private static final transient Logger LOG = LoggerFactory.getLogger(HTTPRedirectTransportSender.class);
public HTTPRedirectTransportSender(HttpServletResponse httpServletResponse)
{
super(httpServletResponse);
}
@Override
protected BaseHttpServletResponseXMLMessageEncoder buildMessageEncoder()
{
return new HTTPRedirectDeflateEncoder();
}
}
.. 如果我查看 HttpRedirectDeflateDecoder 然后我可以看到一些关于构建 url 等的逻辑。我已经搜索了一段时间,但我没有找到一个我确定会是我正在寻找的示例 - 所以我希望那里的专家能够提供帮助?
【问题讨论】:
-
也许这可能会有所帮助。我刚刚回答了一个类似的问题,但对于 javascript。我有一个带有 SAMLRequest 和 RelayState 的 JSP,它会自动发布,但它应该让您了解如何发送 RelayState stackoverflow.com/questions/48700273/…
-
只是为了弄清楚你在问什么????您的站点(SP)导致客户端的浏览器向 ADFS 发出请求(GET 请求)?现在您想知道如何将 RelayState 附加到此请求?