标志是禁用未经请求的响应正常工作吗?

时间:2016-01-22 01:40:56

标签: spring-saml

我正在使用spring-saml 1.0.1 RELEASE。我将属性supportUnsolicitedResponse添加到我的SP extendedMetadata并将值设置为false,但这并未阻止未经请求的IDP响应。

检查src / main / java / org / springframework / security / saml / websso / WebSSOProfileConsumerImpl.java第130行中的代码后,我发现检查此标志的调用是针对对等扩展元数据的......

context.getPeerExtendedMetadata().isSupportUnsolicitedResponse()

不是本地扩展元数据。

这对我来说似乎不对。在我看来,我正在配置我的SP接受或拒绝未经请求的响应,因此它应该在本地扩展元数据中设置,代码应该在那里寻找而不是对等体。我错过了什么吗?有人可以解释这是如何工作的吗?

感谢。

1 个答案:

答案 0 :(得分:1)

好的,我已经弄明白了。在Spring-SAML中实现supportUnsolicitedResponse的方式是允许SP为每个IDP单独指定是否可以发送IDP发起的SAML响应。这使SP具有灵活性,允许一些IDP发送IDP发起的SAML响应,而不允许其他人发送。 SP无法指定它不接受来自任何IDP的IDP发起的响应。

属性supportUnsolicitedResponse的这种行为记录在http://docs.spring.io/spring-security-saml/docs/1.0.x/reference/html/configuration-metadata.html的spring-SAML文档的表7.2中。