WebSphere 8.5.5不返回JAR签名者

时间:2013-12-12 16:08:51

标签: java servlets jar websphere jar-signing

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。

1 个答案:

答案 0 :(得分:1)

WebSphere Application Server的应用程序类加载器在定义类时不使用签名信息。如果你真的需要这个,你最好的选择可能是open an RFE。否则,如果您只是尝试获取元数据,则可以选择不同的解决方法。