WebSphere 8.5.5不会在运行时返回签名者。我们遇到了部署环境和代码的问题,该环境和代码验证JAR是否使用预期密钥进行签名。
运行: public static int checkSigning(Class cl){ Object [] signers = cl.getSigners();
if(signers == null)
return -1;
else
return 0;
}
针对已知签名的JAR(针对Jarsigner进行验证)返回-1(意味着getSigners为null),但仅在部署在WebSphere 8.5.5实例中时。在其他servlet容器(GlassFish,WebLogic,JBoss)中运行都会正确返回签名者。
为了进一步复杂化,我并没有直接控制WebSphere实例,也没有得到任何明确的答案,无论是否正在解压缩JAR或任何其他可能导致此问题的原因。
TL; DR:
1)WebSphere 8.5.5是否有关于类的getSigner的任何已知问题?
2)如果没有,是否有任何悬而未决的水果配置/部署设置需要检查以确保在部署期间没有损坏JAR?
我花了几个小时试图挖掘,我发现的所有内容都可以解释这种行为据说不适用于WebSphere 8.5.5。
答案 0 :(得分:1)
WebSphere Application Server的应用程序类加载器在定义类时不使用签名信息。如果你真的需要这个,你最好的选择可能是open an RFE。否则,如果您只是尝试获取元数据,则可以选择不同的解决方法。