将我的 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 数据库转移到另一台计算机?

如何将应用迁移到另一台服务器

如何将 DolphinDB 集群迁移到另一台机器上

如何将大型 MySQL 数据库从一台服务器迁移到另一台服务器?

如何将我的所有 python 库从一台机器转移到另一台机器[重复]

idea ssm项目迁移到另一台机器上时出现不能正常启动项目的解决方案