将我的 Spring 应用程序迁移到另一台服务器并在 Tomcat 启动时收到“元数据条目的签名信任建立失败”
Posted
技术标签:
【中文标题】将我的 Spring 应用程序迁移到另一台服务器并在 Tomcat 启动时收到“元数据条目的签名信任建立失败”【英文标题】:Migrated my Spring application to another server and receive "Signature trust establishment failed for metadata entry" upon Tomcat startup 【发布时间】:2017-03-07 15:33:36 【问题描述】:我最近将我的应用程序从一台服务器迁移到另一台服务器,并且在启动 Tomcat 时,当 Spring SAML 尝试验证我的元数据文件中保存的签名的信任时,我收到一个异常。
ERROR 2016-10-24 18:34:56,728 AbstractReloadingMetadataProvider:398 processNonExpiredMetadata-> 过滤来自 /sites/thisapplication/webapps/rts/WEB-INF/classes/blablabla.xml org.opensaml.saml2.metadata 的元数据时出错。 provider.FilterException:元数据条目的签名信任建立失败
有谁知道为什么这可能会失败?配置的 Java 密钥库没有改变,当我查看密钥库中的所有证书时,我仍然可以看到正确的证书。
我知道我可以在 ExtendedMetadataDelegate
bean 中将参数 metadataTrustCheck
设置为 false
,但我宁愿确保问题得到解决而不是忽略。
以防万一,旧服务器使用 Sun/Oracle 的 Java 6 版本,而新服务器使用 OpenJDK Java 6。
提前致谢!
附:我正在使用最新的 Spring SAML 版本 (1.0.2.RELEASE) 和 Spring 3.1.1。
【问题讨论】:
【参考方案1】:确保新 JDK 已安装 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for JDK/JRE 8。这是导致这种回归的最可能原因。
【讨论】:
以上是关于将我的 Spring 应用程序迁移到另一台服务器并在 Tomcat 启动时收到“元数据条目的签名信任建立失败”的主要内容,如果未能解决你的问题,请参考以下文章
如何将大型 MySQL 数据库从一台服务器迁移到另一台服务器?