我使用的是spring-saml 1.0.1版本。我将属性supportUnsolicitedResponse添加到我的SP extendedMetadata中,并将值设置为false,但这并未阻止未经请求的IDP响应。
在检查src/main/java/org/springframework/security/saml/websso/WebSSOProfileConsumerImpl.java行130中的代码时,我发现检查此标志的调用是针对对等扩展元数据的……
context.getPeerExtendedMetadata().isSupportUnsolicitedResponse()
而不是本地扩展元数据。
这在我看来是不正确的。在我看来,我正在配置我的SP来接受或拒绝未经请求的响应,所以它应该在本地扩展元数据中设置,并且代码应该在那里查找,而不是对等体。我是不是遗漏了什么?有人能解释一下这是如何工作的吗?
谢谢。
发布于 2016-02-02 09:42:57
好了,我已经弄清楚了。Spring-SAML中实现supportUnsolicitedResponse的方式是允许SP为每个IDP单独指定它们是否可以发送IDP发起的SAML响应。这为SP提供了灵活性,允许某些IDP发送IDP发起的SAML响应,而不允许其他IDP。SP无法指定它不接受来自任何IDP的IDP发起的响应。
http://docs.spring.io/spring-security-saml/docs/1.0.x/reference/html/configuration-metadata.html的spring- supportUnsolicitedResponse文档中的表7.2记录了属性SAML的这种行为。
https://stackoverflow.com/questions/34937617
复制相似问题