xfire的webservice安全机制之签名
服务端配置修改点:
applicationContext-webservice.xml文件:
<property name="inHandlers">
<list>
<ref bean="domInHandler" />
<ref bean="wss4jInHandlerSign"/>
<ref bean="validateUserTokenHandler" />
</list>
</property>
<bean id="wss4jInHandlerSign" class="org.codehaus.xfire.security.wss4j.WSS4JInHandler">
<property name="properties">
<props>
<prop key="action">Signature</prop>
<prop key="signaturePropFile">
insecurity_sign.properties
</prop>
</props>
</property>
</bean>
新增配置文件insecurity_sign.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=dv110.com
org.apache.ws.security.crypto.merlin.file=tianyi_public.jks
客户端配置文件:
只需要修改XFireClientFactory.java文件:
//签名
getSign(obj);
public void getSign(Object service){
Client client = ((XFireProxy) Proxy.getInvocationHandler(service)).getClient();
//挂上WSS4JOutHandler,提供认证
client.addOutHandler(new DOMOutHandler());
Properties properties = new Properties();
properties.setProperty(WSHandlerConstants.ACTION, WSHandlerConstants.SIGNATURE);
// User in keystore
properties.setProperty(WSHandlerConstants.USER, "safedv");
// This callback is used to specify password for given user for keystore
properties.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS, PasswordHandler.class.getName());
// Configuration for accessing private key in keystore
properties.setProperty(WSHandlerConstants.SIG_PROP_FILE, "outsecurity_sign.properties");
properties.setProperty(WSHandlerConstants.SIG_KEY_ID, "IssuerSerial");
client.addOutHandler(new WSS4JOutHandler(properties));
}
客户端增加配置文件,outsecurity_sign.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=dv110.com
org.apache.ws.security.crypto.merlin.file=tianyi_private.jks
附录,生成签名的各个KEY,其实就是和ENC反过来操作,私匙签名,公匙解
1、通过别名和密码创建私密钥到keystore:
C:\>keytool -genkey -alias safedv -keypass safedv -keystore tianyi_private.jks -storepass dv110.com -dname "cn=dv110" -keyalg RSA
2、证书:
C:\>keytool -selfcert -alias safedv -keystore tianyi_private.jks -storepass dv110.com -keypass safedv
3、导出公钥到key.rsa:
C:\>keytool -export -alias safedv -file safedv.rsa -keystore tianyi_private.jks -storepass dv110.com
4、导入公钥到新的keystore中:
C:\>keytool -import -alias safedv -file safedv.rsa -keystore tianyi_public.jks -storepass dv110.com
分享到:
相关推荐
理解Xfire Webservice的加密机制可以帮助我们更好地理解现代Web服务安全,尤其是对于那些需要处理敏感用户数据的应用来说,这些都是至关重要的。通过对这些概念和技术的学习,开发者可以为他们的应用构建出更安全的...
这些阶段为开发者提供了丰富的扩展点,可以通过编写Handler实现各种自定义功能,如安全控制、消息加密、签名或压缩。 【POJO Bean导出为Web服务】 XFire的一大优势在于,它可以轻松地将普通的Java类(POJO Bean)...
XFire支持WS-Security,可以实现消息级的安全性,如数字签名和加密。这使得敏感数据在传输过程中得到保护,防止被窃取或篡改。 6. **与其他技术的集成** XFire与Spring框架的紧密集成使得它易于在企业级应用中...
【WebService之XFire和Jax实现身份验证】的知识点涵盖了Web服务开发中的安全性和认证机制。Web服务是一种基于互联网的软件应用,允许不同系统之间的数据交换。在Web服务中,确保服务的安全性至关重要,这就涉及到了...
总的来说,xfireDemo项目演示了如何在xfire框架下实现两种不同方式的身份验证机制,这对于理解Web服务的安全性和xfire的使用是非常有价值的。通过这个示例,开发者可以学习到如何在实际项目中应用这些技术,增强Web...
5. **安全与WSSecurity**:"XFire+WSSecurity.pdf"可能涵盖了WebService的安全性,特别是WSSecurity(Web Services Security)标准,它是用于保护SOAP消息的安全框架,包括数字签名、加密等功能。 6. **实战教程**...
- WS-Security:提供SOAP消息级别的安全,包括数字签名、加密、消息完整性等。 - OAuth和OpenID Connect:用于第三方应用的授权认证。 总结: 本篇文章详细介绍了WebService的基本概念和AXIS、XFire、CXF这三个流行...
CXF实现了WS-Security,允许开发者添加数字签名、加密、时间戳等安全元素到SOAP消息中。 5. **Token-based认证**:OAuth、JWT(JSON Web Tokens)等令牌机制也是常见的安全策略。CXF可以与这些标准配合,实现基于...
在实现Web服务时,需要考虑安全性问题,例如使用SSL/TLS进行传输加密,实施WS-Security标准进行身份验证和消息完整性检查,以及使用数字签名防止篡改。 8. 性能优化: 优化Web服务的性能可以从多个方面入手,如...
- 安全机制:包括用户认证、数字签名和混合验证等,确保WebService通信的安全性。 综上所述,WebService-CXF实用手册学习大全主要讲述了WebService的基础知识、Java中的相关规范、CXF框架的应用以及在开发过程中会...
XFire可以生成客户端代理类,这个类提供了与服务端相同的方法签名,使得调用Web服务就像调用本地方法一样。客户端只需要提供服务的URL,XFire就会自动构建和发送SOAP请求,然后解析返回的结果。 在“Web service ...
### WebService之CXF开发指南 #### 一、概述 WebService技术已经成为企业级应用中不可或缺的一部分,它使得不同系统之间能够以标准化的方式进行交互。在众多WebService框架中,Apache CXF因其灵活、强大的功能和...
XFireWSS可能指的是XFire对WSS的支持,包括数字签名、加密、身份验证等安全机制。在XFire中,开发者可以通过配置或编程方式实现这些安全特性,如使用X509证书进行SSL/TLS加密,或者利用WS-Security标准添加SOAP头...
- **使用WS-Security**:通过配置XFire,可以实现对SOAP消息的身份认证、数字签名和数据加密,从而增强Web Service的安全性。 总之,《精通Spring_2.x:企业应用开发详解(xfire部分)》一书深入探讨了Web Service与...
WS-Security是Web Service安全的标准,它定义了如何在SOAP消息中添加安全性信息,如数字签名和加密,以确保消息的完整性和机密性。 【WS-*家族】 WS-Notification、WS-Transaction等是WS-*标准家族的一部分,它们...
- **安全性**:了解CXF如何支持WS-Security,包括用户名令牌、数字签名和消息加密等安全机制。 通过这个资源包,学习者不仅可以掌握CXF的基本用法,还能了解到Web服务开发中的最佳实践,对于提升Java Web开发能力...
4. 安全性:CXF提供了多种安全机制,包括基本认证、 Digest认证、OAuth、SSL/TLS等。它还支持WS-Security(Web Services Security)标准,可以实现消息级别的安全性,如签名、加密和令牌验证。 5. 插件和扩展:CXF...
CXF支持多种绑定和传输机制,包括JAX-RS(Java API for RESTful Web Services)。 **服务安全性** 在Web Service中,安全性通常涉及认证、授权、加密和消息完整性。例如,WS-Security可以用来添加数字签名和加密,...
9. **安全配置**:CXF支持各种安全模型,包括基本认证、数字签名、消息加密等。在实际项目中,需要根据业务需求设置合适的安全策略,防止未授权访问和数据泄露。 10. **持续学习与进阶**:理解并熟练掌握CXF ...