xfire+wss4j实现WS-Security (一)

最近一直在研究web service,搞完了服务端返回对象,接着搞了WS-Security
走了许多弯路,最后才发现其实可以很容易的。
在MyEclipse里面新建web service项目,加包的时候一定要把Security加进去啊,我就是因为刚开始没加入这个,缺了好多包,自己又到处去down,最后版本还不对,总是少这个少那个,绕了一圈突然发现要的东西原来已经在眼前了。
还要注意的是,网上有资料说要引入Xalan 2.7.0,但是加入这个包后总是提示少FuncLoader.class,又去down了一个xalan-j_2_4_0-bin.zip,才找到这个类。
下面开始配置了...

一、前提条件:
前提条件要安装Unlimited Strength Jurisdiction Policy
(可以在http://java.sun.com/j2se/1.5.0/download.jsp或http://java.sun.com/j2se/1.4.2/download.html下载)
和Bouncy Castle(来自http://BouncyCastle.org)。否则会出现无效算法(algorithm)或Key大小(Key Size)

二、安装Unlimited Strength Jurisdiction Policy和Bouncy Castle
1、安装Unlimited Strength Jurisdiction Policy:把local_policy.jar和US_export_policy.jar两个文件拷贝到:
C:\j2re1.4.2\lib\security\下;(如果JRE安装在C:\j2re1.4.2)。
2、安装Bouncy Castle:
(1)、把下载的bcprov-jdk14-119.jar文件拷贝到两个地方
一个在安装的JDK目录中 C:\Program Files\Java\jdk1.5.0_06\jre\lib\ext
另一个在JDK运行环境中 C:\Program Files\Java\jre1.5.0_06\lib\ext
(2)、还要在对两个java.security进行修改:
C:\Program Files\Java\jdk1.5.0_06\jre\lib\security\java.security
C:\Program Files\Java\jre1.5.0_06\lib\security\java.security
在java.security中加入 security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider

三、创建密钥:
1、通过别名和密码创建私密钥到keystore:
keytool -genkey -alias ws_security -keypass keypassword -keystore privatestore.jks -storepass keyStorePassword -dname "cn=ws_security" -keyalg RSA 采用RSA算法进行处理。
2、证书:
keytool -selfcert -alias ws_security -keystore privatestore.jks -storepass keyStorePassword -keypass keypassword
3、导出公钥到key.rsa:
keytool -export -alias ws_security -file key.rsa -keystore privatestore.jks -storepass keyStorePassword
4、导入公钥到新的keystore中:
keytool -import -alias ws_security  -file key.rsa -keystore publicstore.jks -storepass keyStorePassword
5、创建insecurity.properties:
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=keyStorePassword
org.apache.ws.security.crypto.merlin.keystore.alias=ws_security
org.apache.ws.security.crypto.merlin.file=publicstore.jks
6、    创建outsecurity.properties:
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=keyStorePassword
org.apache.ws.security.crypto.merlin.alias.password=keypassword
org.apache.ws.security.crypto.merlin.keystore.alias=ws_security
org.apache.ws.security.crypto.merlin.file=privatestore.jks
7、  把文件insecurity.properties、publicstore.jks放在服务端的src目录下,outsecurity.properties,privatestore.jks放在客户端的src目录下。

你可能感兴趣的:(java,apache,Security,ext,J2SE)