xfire的webservice安全机制
下面是客户端调用的配置
如果按照我上次采用的那个整合XFIRE和SPRING的办法,需要修改的东西很少,
配置文件做如下修改:
<bean name="tuserManagerXfire"
class="com.sillycat.plugin.webservice.xfire.XFireClientFactory">
<property name="serviceURL" value="http://192.168.10.103/ipcamera/services/UserServiceEnc"/>
<property name="serviceClassName" value="com.megaeyes.ipcamera.service.webservice.iface.UserService"/>
</bean>
嘿嘿。其实改的就是URL,改了一个
http://192.168.10.103/ipcamera/services/UserServiceEnc
调用了加密后的接口
然后我写的那个XFireClientFactory.java里面要做一个修改,加入如下代码:
public Object getObject() throws Exception {
String url = this.getServiceURL();
Class sClass = null;
try {
sClass = Class.forName(this.getServiceClassName());
} catch (ClassNotFoundException e) {
log.error(e.getMessage(), e);
return null;
}
Assert.notNull(url);
Assert.notNull(sClass);
Service serviceModel = new ObjectServiceFactory().create(sClass);
try {
Object obj = serviceFactory.create(serviceModel, url);
//加入了加密的内容
getEnc(obj);
return obj;
} catch (MalformedURLException e) {
log.error(e.getMessage(), e);
return null;
}
}
public void getEnc(Object service) {
Client client = ((XFireProxy) Proxy.getInvocationHandler(service))
.getClient();
// 挂上WSS4JOutHandler,提供认证
client.addOutHandler(new DOMOutHandler());
Properties properties = new Properties();
properties.setProperty(WSHandlerConstants.ACTION,
WSHandlerConstants.ENCRYPT);
properties.setProperty(WSHandlerConstants.USER, "tianyi");
// config.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS,
// PasswordHandler.class.getName());
// Configuration of public key used to encrypt message goes to
// properties file.
properties
.setProperty(
WSHandlerConstants.ENC_PROP_FILE,
"outsecurity_enc.properties");
client.addOutHandler(new WSS4JOutHandler(properties));
}
其实就把原来的方法改了,在返回调用前,先调用了getEnc(obj);这个方法,挂上了加密这个动作。
有个比较土的地方要修改一下,就是代码里面还有一个
properties.setProperty(WSHandlerConstants.USER, "tianyi");
写死的传递用户名的。嘿嘿。改成从配置中读取吧。
在客户端的properties文件中,这么写outsecurity_enc.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=ipcamera
#公匙的名字
org.apache.ws.security.crypto.merlin.file=tianyi_public.jks
这样客户端就配置完成了。调用原来那个
public void testGetUser() {
UserService userService = (UserService) appContext
.getBean("tuserManagerXfire");
IUserInfo iuserInfo = new IUserInfo();
iuserInfo.setId("0000000000000000000000000000119");
IUserInfoResult result = userService.getUser(iuserInfo);
assertNotNull(result);
System.out.println(result.getErrorCode());
System.out.println(result.getMessage());
System.out.println(result.getLogonName());
}
就可以测试了
分享到:
相关推荐
**XFire Webservice 上传下载源码详解** XFire 是一款强大的Java Web服务框架,它为开发者提供了构建高质量、高性能的Web服务的工具。在"xfire webservice 上传下载源码"这个主题中,我们将深入探讨如何使用XFire来...
Xfire Webservice加密是一种在开发基于Xfire的游戏社区服务时,用于保护通信安全的重要技术。Xfire是一款已停运的在线游戏社交平台,它允许玩家与朋友即时通讯、记录游戏成绩,并与其他玩家互动。尽管Xfire本身不再...
综上所述,XFire Webservice服务器端是一个复杂的系统,涉及到了Web Service的核心概念、安全实践、性能优化等多个方面,对游戏开发者提供了丰富的功能接口,使得游戏能够更好地融入XFire的生态系统。
9. **安全性**:对于涉及到敏感数据或认证的Web服务,XFire也提供了安全特性,如SSL/TLS加密、WS-Security等,以保护通信的安全。 10. **持续集成与部署**:在开发完成后,XFire生成的客户端代码可以被包含在应用的...
4. 安全可靠:xfire提供了一个安全的WebService开发环境,支持SSL/TLS加密、身份验证和授权等功能。 xfire的应用场景包括: 1. 企业应用集成:xfire可以用于企业应用集成,实现不同系统之间的数据交换和集成。 2. ...
为了确保数据安全,开发者需要对API调用进行加密,并遵循XFire的访问策略。同时,优化请求频率和数据量可以提高服务的响应速度和整体性能。 总结,XFire Webservice 客户端是开发者与XFire服务器交互的重要工具,...
你可以通过设置认证机制、加密传输、限制访问策略等方式增强Web服务的安全性。 10. **性能优化** 考虑到性能,可以调整Xfire的配置以减少内存占用、优化线程池或启用缓存。同时,合理设计数据库查询以减少不必要的...
5. **安全机制**:可能涉及到身份验证、授权和加密等,确保服务的安全性。 在**开发文件**中,我们可以期待以下内容: 1. **项目结构**:展示了源码目录的组织方式,帮助开发者定位到具体的功能模块。 2. **配置...
这些阶段为开发者提供了丰富的扩展点,可以通过编写Handler实现各种自定义功能,如安全控制、消息加密、签名或压缩。 【POJO Bean导出为Web服务】 XFire的一大优势在于,它可以轻松地将普通的Java类(POJO Bean)...
可能需要实施HTTPS来加密传输,同时,可能需要使用OAuth或其他认证机制来验证请求的来源,确保只有授权的用户或应用可以访问Xfire的数据。 6. 文件"Xfire建立WebService.doc":这个文档很可能包含了详细的步骤指导...
标题中的“xfire开发webservice所需jar包”指的是在使用XFire框架开发Web服务时所需要的一组Java类库。XFire是Apache CXF项目的一部分,它是一个轻量级的、高性能的Web服务框架,用于创建和消费SOAP服务。这篇博客...
4. **安全机制**:为了保护用户的隐私和数据安全,Xfire Web服务可能采用了身份验证和加密技术,如OAuth、HTTPS或SSL/TLS证书。 5. **多线程编程**:如果.jar包包含服务器端组件,多线程编程可能用于处理并发请求,...
9. **安全性考虑**: 当访问Web服务时,需要考虑身份验证、授权、加密等安全问题。XFire支持WS-Security等安全标准,可以实现安全的Web服务通信。 10. **性能优化**: 通过缓存、线程池和HTTP连接管理等方式,可以...
虽然XFire不直接提供全面的安全解决方案,但它支持基于SOAP消息的安全特性,如WS-Security(Web Services Security),可以集成其他安全框架来实现身份验证、授权和加密等功能。 9. **与CXF的关系**: 随着时间的...
本篇文章详细介绍了WebService的基本概念和AXIS、XFire、CXF这三个流行的Java WebService框架,以及授权认证和加密解密在WebService中的应用。这些内容对于理解和实践WebService开发具有重要价值,为开发者提供了...
XFire支持WS-Security,可以实现消息级的安全性,如数字签名和加密。这使得敏感数据在传输过程中得到保护,防止被窃取或篡改。 6. **与其他技术的集成** XFire与Spring框架的紧密集成使得它易于在企业级应用中...
8. **安全与权限**:由于涉及到敏感数据(如用户信息),Xfire的Web服务可能需要实施安全措施,如HTTPS加密、身份验证和授权。 9. **性能优化**:对于大规模的在线游戏社区,优化服务性能(如减少延迟、提高并发...
6. **安全性**:对于涉及敏感信息的Web服务,客户端代码可能需要实现加密和解密机制,如SSL/TLS协议,以确保数据传输的安全性。 7. **缓存策略**:为了提高性能,客户端可能会实现缓存机制,对某些频繁调用但变化...
8. **异常处理和安全性**: 了解如何在Xfire中处理异常,以及如何通过添加安全层(如SSL加密或WS-Security)来保护你的Web Service。 9. **与Spring集成**: 如果你的项目基于Spring框架,你将学习如何将Xfire服务...