jboss7.1.1下JCE cannot authenticate the provider BC

jboss7.1.1下JCE cannot authenticate the provider BC

问题描述:

1、我的代码中引用了bcprov-jdk16-146.jar,在部署到jboss7.1.1时报如下异常:
Caused by: java.lang.SecurityException: JCE cannot authenticate the provider BC
at javax.crypto.SunJCE_b.a(DashoA13*..)
at javax.crypto.SecretKeyFactory.getInstance(DashoA13*..)
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:667)
... 95 more
Caused by: java.util.jar.JarException: Cannot parse jar:file:/Users/himajumdar/Work/jboss/jboss-5.1.0.GA/server/default/tmp/a00c-b5p2h4-hgi84jo1-1-hgi84qe5-w/csa.ear!/lib/bcprov-jdk16-146
at javax.crypto.SunJCE_c.a(DashoA13*..)
at javax.crypto.SunJCE_b.b(DashoA13*..)
at javax.crypto.SunJCE_b.a(DashoA13*..)
... 98 more

2、然后按照网上说的我在JAVA_HOME/jre/lib/security/java.security下增加
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider to java.security
将该jar包放到JAVA_HOME/jre/lib/ext下,并将项目中的该jar去掉

结果又报出如下问题:
ERROR java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)

哪位大侠能给解决下呢

该问题解决了,具体的解决过程:
1、 在jboss下创建如下目录:$JBOSS_HOME/modules/org/bouncycastle/main,将bcprov-jdk16-146.jar、module.xml(该文件可比其它目录copy过来)放到该目录下,
module.xml文件放如下 内容:








2、在 $JBOSS_HOME/standalone/configuration/standalone.xm文件中,找到这一行,将它替换为:




以上两步操作完即可,不需要其它操作了

补上面缺失的内容:
1、下的内容:
module.xml文件放如下 内容:

 <module xmlns="urn:jboss:module:1.1" name="org.bouncycastle">
    <resources>
        <resource-root path="bcprov-jdk16-146.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api" slot="main" export="true"/>
    </dependencies>
</module>

2、下的内容:

 <subsystem xmlns="urn:jboss:domain:ee:1.0">
    <global-modules>
        <module name="org.bouncycastle" slot="main"/>
    </global-modules>
</subsystem>

这个上面还不会用,再补一下,2是要找到如下这一行

 <subsystem xmlns="urn:jboss:domain:ee:1.0"/>

并将之替换为上面所描述的

太感谢了,我也遇到此问题。晕,不在jboss中,可以运行,放到jboss里,就报错…………。