bouncycastle + JBoss AS7:JCE无法验证提供者BC

我在应用程序中使用BouncyCastle进行加密。当我独立运行它时,一切正常。但是,如果将其放在webapp中并部署在JBoss服务器上,则会出现以下错误:

javax.servlet.ServletException: error constructing MAC: java.security.NoSuchProviderException: JCE cannot authenticate the provider BC

(...)

root cause

java.lang.Exception: error constructing MAC: java.security.NoSuchProviderException: JCE cannot authenticate the provider BC

(...)

root cause

java.io.IOException: error constructing MAC: java.security.NoSuchProviderException: JCE cannot authenticate the provider BC

org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(Unknown Source)

java.security.KeyStore.load(Unknown Source)

这是导致此错误的代码的一部分:

    if (Security.getProvider(BouncyCastleProvider.PROVIDER_NAME) == null)

{

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

}

// Read the Private Key

KeyStore ks = KeyStore.getInstance("PKCS12", BouncyCastleProvider.PROVIDER_NAME);

ks.load(new FileInputStream(certificatePath), privateKeyPassword.toCharArray());

和Maven的依赖:

<dependency>

<groupId>bouncycastle</groupId>

<artifactId>bcmail-jdk16</artifactId>

<version>140</version>

</dependency>

你知道我该怎么部署吗?

回答:

不要将充气城堡罐子部署为您的Web应用程序(WEB-INF / lib)的一部分。您当然需要在编译时使用此文件,但是在JBOSS上,它应该在此处:

$JBOSS_HOME/server/default/lib/

代替

yourapp/WEB-INF/lib

以上是 bouncycastle + JBoss AS7:JCE无法验证提供者BC 的全部内容, 来源链接: utcz.com/qa/416971.html

回到顶部