我目前正在从旧的不推荐使用的Spring Security SAML Extension 1.0.10迁移到Spring Security 5.6.中的SAML实现。
在旧的扩展中,可以禁用SAML响应的签名验证(Spring Security SAML扩展文档中的属性wantAssertionSigned
(。这在测试过程中对我很有帮助。
我想知道这在Spring Security中是否也可行?
我在源代码中搜索,发现了类OpenSamlMetadataResolver
,在我看来,这是硬编码的,不能更改:
private SPSSODescriptor buildSpSsoDescriptor(RelyingPartyRegistration registration) {
SPSSODescriptor spSsoDescriptor = build(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
(...)
spSsoDescriptor.setWantAssertionsSigned(true);
(...)
return spSsoDescriptor;
}
此外,OpenSaml4AuthenticationProvider
中的代码似乎没有提供一种简单的方法来配置私有变量assertionSignatureValidator
以覆盖验证行为。
感谢您的帮助。
在将于2022年5月16日星期一发布的Spring Security 5.7.0中,删除了硬编码行。因此,默认情况下不再进行签名验证。
如果你愿意,你也可以自定义EntityDescriptor
,比如
openSamlMetadataResolver.setEntityDescriptorCustomizer(
(parameters) -> parameters.getEntityDescriptor().setEntityID("overriddenEntityId"));
你总是可以在GA之前尝试里程碑发布。