我遇到的问题是,将第二个签名添加到 .jar 文件会导致与只有其中一个签名的代码结合使用时出现问题。
背景:我们有一个使用过期证书签名的应用程序。它有一个启动器,可以通过下载新版本的 .jar 文件并将它们放在类路径中现有文件的前面来进行自我更新。
我们获得了新证书并使用两个密钥签署了新的启动器和更新。不幸的是,旧应用程序现在拒绝启动:
- 启动器(用旧证书签名)建立类路径。
- 然后它从一个用两个证书签名的类(“Stendhal”)jar 中调用一个方法
- 此方法从仅使用旧证书签名的 jar 加载一个类(“LogUncaughtExceptionHandler”)。
SecurityException: 类“games.stendhal.client.LogUncaughtExceptionHandler”的签名者信息与同一包中其他类的签名者信息不匹配