我已经使用FilesystemMetadataProvider进行了基于此的实现:https://github.com/vdenotaris/spring-boot-security-saml-sample
要使SSL握手适用于工件绑定,我必须在keyManager使用的java密钥库中放置/信任IDP的CA证书。
我希望在IDP改变CA的情况下使用jre上的cacerts,但是我还没有能够找到任何属性来设置,以便Spring SAML在内部查找。
此答案也表明cacert被忽略了altogheter: Spring Security SAML - HTTPS connections
为什么在Spring SAML中忽略了cacert?这似乎是我的不足之处。
我已经检查过IDP的CA是否在我的jre的cacert文件中。如果我从配置中删除与TLS /套接字工厂相关的bean,它仍然会失败。
答案 0 :(得分:2)
是的,cacerts被忽略了。 Spring SAML使用自定义实现来处理信任,旨在提供对系统安全性的更多控制。您可以随时轻松地将所有证书从cacerts复制到samlKeystore。
答案 1 :(得分:0)
您的自定义证书/ JDK默认证书必须将IDP证书导入为信任。
您在JKS管理器中使用的自定义证书必须至少有一个私钥。
请导入您对JDK_PATH / jre / lib / securitycacerts的信任并尝试命令 wget <your_idp_descriptor_url>