我正在使用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接受或拒绝未经请求的响应,因此它应该在本地扩展元数据中设置,代码应该在那里寻找而不是对等体。我错过了什么吗?有人可以解释这是如何工作的吗?
感谢。
答案 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中。