背景BouncyCastle的1.51装载在战争Wildfly 8.0
我想使用充气城堡库在我的战争解密私钥。现在我先在独立应用程序中测试代码,并且它工作正常。现在,当我在Wildfly8.0上测试它作为webapp时,面临着Bouncy城堡的一些问题。
Wildfly 8.0正在使用安装了充气城堡供应商模块。 BC版本在v1.46中使用。
我开发的代码使用v1.51。 我按照此处提到的步骤:
- https://developer.jboss.org/thread/175395
- bouncycastle + JBoss AS7: JCE cannot authenticate the provider BC - 具体而言,接着在提供的指令对于特定部署(优选)
已经尝试过
- 安装JCE po licy文件。
- 添加到提供者列表中。
问题
我得到的错误是:
unable to read encrypted data: JCE cannot authenticate the provider BC
并触发上述错误,在如下的代码:
PKCS8EncryptedPrivateKeyInfo kp = (PKCS8EncryptedPrivateKeyInfo) keyPair;
InputDecryptorProvider pkcs8dec = new JceOpenSSLPKCS8DecryptorProviderBuilder()
.setProvider(new BouncyCastleProvider())
.build("somepass".toCharArray());
PrivateKeyInfo pko = kp.decryptPrivateKeyInfo(pkcs8dec);<-- ##Error here
还添加详细信息,在我的pom.xml中,我添加了具有编译范围的jar,所以这些库被复制到war和ge中安装在WEB-INF/lib中。
任何提示解决上述问题?
您引用的'JBoss AS7:...'问题说:“创建一个Jboss模块(文件夹[...])。把[...]“,但在上面说BC jar被安装在WEB-INF/lib中。有没有可能你误解了那里的指示? –
现有的JBoss模块使用BC v1.46。我想用我的webapp使用BC v1.51。我无法升级JBoss模块以使用BC v1.51,因为还有其他webapps依赖于v1.46。希望这个清楚。 – eminemence
难道你不能为1.51创建第二个模块吗? –