2013-12-12 82 views
0

WebSphere 8.5.5在運行時沒有返回簽名者。我們在部署環境和代碼方面存在問題,這些問題用於驗證JAR是否使用了預期密鑰進行簽名。WebSphere 8.5.5不返回JAR簽名者

運行: public static int checkSigning(Class cl){[] signers = 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。

回答

1

WebSphere Application Server的應用程序類加載器在定義類時不使用簽名信息。如果你真的需要這個,你最好的選擇可能是open an RFE。否則,如果您只是想獲取元數據,則可以選擇其他解決方法。