【发布时间】:2013-12-12 16:08:50
【问题描述】:
WebSphere 8.5.5 不会在运行时返回签名者。我们在验证 JAR 是否使用预期密钥签名的已部署环境和代码方面存在问题。
运行: 公共静态 int checkSigning(类 cl){ Object[] 签名者 = cl.getSigners();
if(signers == null)
return -1;
else
return 0;
}
针对已知签名的 JAR(针对 Jarsigner 进行验证)返回 -1(意味着 getSigners 为空),但仅当部署在 WebSphere 8.5.5 实例中时。在其他 servlet 容器(GlassFish、WebLogic、JBoss)中运行都会正确返回签名者。
更复杂的是,我没有直接控制 WebSphere 实例,也没有得到任何关于 JAR 是否被解包或任何其他可能导致此问题的原因的明确答案。
TL;DR:
1) WebSphere 8.5.5 是否有任何关于类的 getSigners 的已知问题?
2) 如果没有,是否有任何容易实现的配置/部署设置来检查以确保 JAR 在部署期间没有被破坏?
我花了几个小时试图挖掘,我发现的所有可以解释这种行为的东西都不适用于 WebSphere 8.5.5。
【问题讨论】:
标签: java servlets jar websphere jar-signing