我使用初始密钥管理器bean在我的应用程序中设置了saml上下文:
<!-- Central storage of cryptographic keys -->
<bean id="keyManager" class="org.springframework.security.saml.key.JKSKeyManager">
<constructor-arg value="classpath:security/samlKeystore.jks"/>
<constructor-arg type="java.lang.String" value="nalle123"/>
<constructor-arg>
<map>
<entry key="apollo" value="nalle123"/>
</map>
</constructor-arg>
<constructor-arg type="java.lang.String" value="apollo"/>
</bean>
此配置适用于我的IDP。即,在验证传入的SAML消息后,它会成功验证用户身份。
另外,我尝试用 EmptyKeyManager 实现简单地替换此管理器,但出现上述错误。
在将这些更改部署到生产之前,很少有人会知道这些问题:)。
答案 0 :(得分:2)
您可以在手册(chapter 8.1)中找到,只有在您的应用程序不需要创建数字签名时才能使用EmptyKeyManager
。您提到的错误表明Spring SAML确实需要在您的使用模式中创建一个。也许你正在使用HTTP-Artifact绑定并要求签署传出的ArtifactRequest消息?
本手册还会显示将当前keyManager
替换为EmptyKeyManager
的确切配置行。