我們的應用程序使用Bouncycastle。我現在在嘗試部署我在WebSphere Liberty配置文件的應用程序,並提示以下錯誤:在Websphere Liberty配置文件中使用bouncycastle
[err] java.io.IOException: error constructing MAC: java.lang.SecurityException: JCE cannot authenticate the provider BC
[err] at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(Unknown Source)
[err] at java.security.KeyStore.load(KeyStore.java:1214)
[err] at com.manh.jwt.JwtKeyManager.loadPrivateKeyByIssuer(JwtKeyManager.java:213)
因此而不必在WEB-INF/lib目錄的BouncyCastle的罐子,我創建了一個共享庫,並將此庫作爲privateLibraryRef到我的web應用程序。我仍然得到同樣的錯誤。
這是我的server.xml供您參考。
<server description="new server">
<!-- Enable features -->
<featureManager>
<feature>jsp-2.2</feature>
<feature>servlet-3.0</feature>
</featureManager>
<webContainer deferServletLoad="false" />
<httpEndpoint id="defaultHttpEndpoint"
host="localhost"
httpPort="20000"
httpsPort="9443" />
<library id="configResources">
<folder dir="${server.config.dir}/conf" />
</library>
<library id="bc">
<fileset dir="${server.config.dir}/bclib" includes="*.jar" />
</library>
<webApplication name="scope" location="scope.war" contextRoot="/">
<classloader privateLibraryRef="configResources, bc" />
</webApplication>
</server>
是否有任何其他設置,我可以嘗試使這個工作?
可能重複的[BouncyCastle的+的JBoss AS7:JCE不能驗證BC提供商(http://stackoverflow.com/questions/9534512/bouncycastle-jboss-as7-jce-cannot-authenticate-the-provider- BC) –
我對Bouncy Castle一無所知,但是從四處搜尋,我會使用此解決方案:http://stackoverflow.com/a/17400821/142446作爲修改JDK映像的替代方法,您可以設置-Djava.ext 。jvm.options中的.dirs指向其他目錄。 –
感謝@bkail的信息。它適用於修改java.security文件。我們不能這樣做,因爲我們的部署無法訪問java安裝目錄。我們想要按照http://www.bouncycastle.org/wiki/display/JA1/Provider+Installation中的說明動態添加提供程序。這在Websphere Liberty配置文件中不起作用 – Palanivelrajan