Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1966964
  • 博文数量: 606
  • 博客积分: 9991
  • 博客等级: 中将
  • 技术积分: 5725
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-17 19:07
文章分类

全部博文(606)

文章存档

2011年(10)

2010年(67)

2009年(155)

2008年(386)

分类: Java

2009-04-03 13:55:52

在配了Encypt后,客户端发起调用会报一个错:org.apache.ws.security.WSSecurityException: WSHandler: Encryption: error during message processingorg.apache.ws.security.WSSecurityException: An unsupported signature or encryption algorithm was used (unsupported key transport encryption algorithm: No such algorithm:

一开始以为是因为没找到这个什么RSA的加密算法,后来换别的算法似乎也不行。上网找了一下是因为某些国家对加密算法有一定限制,所以SUN公司在发布JDK的时候里面的策略文件是限制版的。需要到SUN公司网站上下载非限制版的策略文件进行替换。

原因分析

  JDK所带的JRE默认引入的是受限的Java Cryptography Extension(JCE)策略文件,相关jar文件对应的路径为:

  /lib/security/local_policy.jar
  /lib/security/US_export_policy.jar

  针对不同的国家,对于JCE策略有不同的限制,在SUN网站 最底下上有详细的说明。
 
  处理策略

  1、可以下载无限制的版本并利用其对以上的两个Jar进行替换以满足要求,不过现在好像仅提供1.6版本的下载了。
 
  2、重新选择JCE的实现,并作为provider添加

  下载

文件: bcprov-jdk13-132.rar
大小: 931KB
下载: 下载

放到/lib/ext 目录下

  添加security.provider,在/lib/security/java.security 文件进行修改添加
           security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider
 
  3、把下载的bouncycastle.jar放到工程的classpath当中。

阅读(1323) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~