解决jboss-eap-6 (jboss7)JCE cannot authenticate the provider BC 的问题
2016-01-28 14:47
627 查看
项目中使用了jboss-eap-6的版本来发布项目,此版本的jboss在项目发布上和以前版本的jboss差别还是很大的,最直接的一点就是如果项目是以war包的形式发布的,jboss启动时是直接是用的war文件进行项目部署的,也就是说它不是像tomcat等工具将war文件解压开用的(jboss是否将war文件“偷偷”解压到了其他地方并未测试)。通常情况下是不会发生问题的,但如果项目中使用了已经签名的jar,例如bcprov,那么就会发生找不到jar签名的问题,从而导致种种问题,例如 JCE
cannot authenticate the provider BC
找到了问题原因,解决办法就好说了。既然jboss是按照module的方式加载的,那么只需要把这个需要签名的jar配置成一个module即可,由于项目中使用的jar为bcprov-jdk15on-1.52.jar,所以这里就演示如何将其配置成一个module。
只需两步,第一步在jboss下创建如下目录:$JBOSS_HOME/modules/org/bouncycastle/main,将bcprov-jdk15on-1.52.jar和module.xml(该文件可从其它目录copy过来)放到该目录下,修改module.xml文件内容如下(注意jar版本号):
<modulexmlns="urn:jboss:module:1.1" name="org.bouncycastle">
<resources>
<resource-root path="bcprov-jdk15on-1.52.jar"/>
</resources>
<dependencies>
<module name="javax.api" slot="main"export="true"/>
</dependencies>
</module>
第二步在$JBOSS_HOME/standalone/configuration/standalone.xm文件中,找到这一行(注意版本不一定是1.0,也可能是其他的版本):
<subsystem xmlns="urn:jboss:domain:ee:1.0"/>
然后将它替换或在其中追加内容为:
<subsystemxmlns="urn:jboss:domain:ee:1.0">
<global-modules>
<module name="org.bouncycastle" slot="main"/>
</global-modules>
</subsystem>
此时再次启动jboss,就可正确识别bcprov-jdk15on-1.52.jar了。
参考资料:http://ask.csdn.net/questions/183826
cannot authenticate the provider BC
找到了问题原因,解决办法就好说了。既然jboss是按照module的方式加载的,那么只需要把这个需要签名的jar配置成一个module即可,由于项目中使用的jar为bcprov-jdk15on-1.52.jar,所以这里就演示如何将其配置成一个module。
只需两步,第一步在jboss下创建如下目录:$JBOSS_HOME/modules/org/bouncycastle/main,将bcprov-jdk15on-1.52.jar和module.xml(该文件可从其它目录copy过来)放到该目录下,修改module.xml文件内容如下(注意jar版本号):
<modulexmlns="urn:jboss:module:1.1" name="org.bouncycastle">
<resources>
<resource-root path="bcprov-jdk15on-1.52.jar"/>
</resources>
<dependencies>
<module name="javax.api" slot="main"export="true"/>
</dependencies>
</module>
第二步在$JBOSS_HOME/standalone/configuration/standalone.xm文件中,找到这一行(注意版本不一定是1.0,也可能是其他的版本):
<subsystem xmlns="urn:jboss:domain:ee:1.0"/>
然后将它替换或在其中追加内容为:
<subsystemxmlns="urn:jboss:domain:ee:1.0">
<global-modules>
<module name="org.bouncycastle" slot="main"/>
</global-modules>
</subsystem>
此时再次启动jboss,就可正确识别bcprov-jdk15on-1.52.jar了。
参考资料:http://ask.csdn.net/questions/183826
相关文章推荐
- apache模块mod_rpaf ,让nginx后端的apache获取访客IP
- 关于虚拟内存与Linux内存管理不得不知道的
- logback日志配置
- 操作系统安装方法(简易安装)
- ubuntu下安装pypy
- Java编程思想重点笔记(Java开发必看)
- Glide介绍
- 2016/01/28 Head First Java 第二节
- android hal
- 【activeMQ】ActiveMQ 发送接收消息(含安装运行测试)
- 你知道哪些linux命令,能把文件上传到远程linux服务器
- js-原型以及继承小案例
- tomcat配置没啥难的啊
- 节点遍历 element traversal
- wireshark解析rtp协议,流媒体中的AMR/H263/H264包的方法
- 在项目中记住Github用户名和密码的方法
- 云服务正在吞噬世界!
- for-in 来遍历字典 while for 循环
- linux undefined reference Access(char* ...)函数错误
- 使应用程序只能运行一次,第二次运行显示上次程序