`
michales003
  • 浏览: 403243 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Cxf生成web service加入安全性验证

阅读更多

Cxf.Security.Wsse4j.Demo

Cxf生成web service加入安全性验证。(参见:http://cxf.apache.org/docs/ws-security.html)

官网代码没有完善,完整代码如下:(SRC)
package com.zte.eip.common.test;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.xml.namespace.QName;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor;
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.handler.WSHandlerConstants;

import com.zte.eip.common.gl.DemoSrv.DemoSrvOutputCollection;
import com.zte.eip.common.gl.DemoSrv.DemoSrvOutputItem;
import com.zte.eip.common.gl.DemoSrv.DemoSrvRequest;
import com.zte.eip.common.gl.DemoSrv.DemoSrvResponse;
import com.zte.eip.common.gl.InquiryDemoSrv.DemoSrv;
import com.zte.eip.common.gl.InquiryDemoSrv.DemoSrv_Service;
import com.zte.eip.common.wsse.ClientConstants;
import com.zte.eip.common.wsse.ClientPasswordHandler;

/**
 * This class was generated by Apache CXF 2.1.3 Thu Sep 03 09:47:26 CST 2009
 * Generated source version: 2.1.3
 *
 */

/**
 * @author
 *
 */
public final class TestClient {

 private static final QName SERVICE_NAME = new QName(
   "http://eip.zte.com/common/gl/InquiryDemoSrv", "InquiryDemoSrv");

 private TestClient() {
 }

 @SuppressWarnings("unchecked")
 public static void main(String args[]) throws Exception {
  URL wsdlURL = DemoSrv_Service.WSDL_LOCATION;
  if (args.length > 0) {
   File wsdlFile = new File(args[0]);
   try {
    if (wsdlFile.exists()) {
     wsdlURL = wsdlFile.toURI().toURL();
    } else {
     wsdlURL = new URL(args[0]);
    }
   } catch (MalformedURLException e) {
    e.printStackTrace();
   }
  }

  DemoSrv_Service ss = new DemoSrv_Service(wsdlURL, SERVICE_NAME);
  DemoSrv port = ss.getDemoSrvPort();

  Client client = ClientProxy.getClient(port);
  Endpoint cxfEndpoint = client.getEndpoint();
  Map outProps = new HashMap();
  outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
  outProps.put(WSHandlerConstants.USER, ClientConstants.USERNAME);
  outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
  outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, ClientPasswordHandler.class.getName());
  WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
  cxfEndpoint.getOutInterceptors().add(wssOut);

  DemoSrvRequest request = new DemoSrvRequest();
  DemoSrvResponse response = port.process(request);
  out(response);

 }

 public static void out(DemoSrvResponse response) {
  DemoSrvOutputCollection collection = response.getDemoSrvOutputCollection();
  List<DemoSrvOutputItem> items = collection.getDemoSrvOutputItem();
  for (DemoSrvOutputItem item : items) {
   System.out.println(item.getORGNAME());
  }
 }

}

分享到:
评论

相关推荐

    CXF实现SSL安全验证

    本文将详细介绍如何使用 CXF 实现 SSL 安全验证,并在此基础上构建 HTTPS 的 Web Service。 ### 步骤一:生成密钥库 (Keystore) 首先,我们需要创建一个密钥库(Keystore),这是一个存储私钥和公钥证书的地方。在...

    实战Web Service —— 使用Apache CXF开发Web服务的教程

    同时,CXF还支持许多扩展,如安全、事务、消息验证等,以满足复杂业务需求。 **实战案例** 在实际项目中,我们可以用CXF构建企业级应用,如CRM系统、B2B接口等。例如,创建一个订单服务,定义订单接口,使用CXF...

    使用cxf的webservice安全验证

    在IT行业中,Web服务安全验证是确保数据传输过程中的安全性和隐私性的重要环节。CXF是一个流行的开源Java框架,用于创建和消费Web服务。本文将深入探讨如何在使用CXF时实现Web服务的安全验证。 首先,理解CXF的背景...

    PacktPub.Apache.CXF.Web.Service.Development.Dec.2009.rar

    2. **创建和部署Web服务**:学习如何使用CXF生成服务接口和服务实现,以及如何将服务部署到应用服务器。 3. **WSDL第一**和**代码第一**开发模式:了解这两种不同的开发方法,根据项目需求选择合适的方式。 4. **...

    webService 生成插件apache-cxf(2.7.7)

    8. **Testing and Debugging**:CXF提供了方便的测试工具和调试支持,例如,你可以使用CXF的WS-Security测试工具检查安全性,或者使用CXF的WS-Addressing测试工具验证消息地址。 9. **Integration with Build Tools...

    Web Service开发指南

    4. **WS-Security**: 提供Web Service的安全性,如数字签名、加密和身份验证。 **最佳实践和挑战** 在Web Service开发中,应关注服务的互操作性、安全性、性能和版本管理。确保服务符合WS-I基本配置,以便跨平台...

    Apache CXF开发使用指南.docx

    这篇文档主要介绍了如何使用 Apache CXF 开发 Web Service,并探讨了如何通过 Tomcat 的 SSL 支持增强服务的安全性。 Web Service 是基于 XML 格式进行通信的远程过程调用(RPC)方式,它在效率和兼容性之间找到了...

    CXF 使用实例集成

    【CXF 使用实例集成】 Apache CXF 是一个开源的Java框架,主要用于构建和开发Web服务。这个集成实例主要展示了...同时,了解如何配置和扩展CXF以满足特定需求,例如安全性和文件操作,是提高Web服务开发效率的关键。

    JAVA 调用Web Service的方法

    Web Service的安全性是重要的考虑因素,包括认证、授权、加密等。Java平台提供了JSSE(Java Secure Socket Extension)和JCE(Java Cryptography Extension)等库支持安全通信。 10. **性能优化**: 为了提高Web ...

    Apache_CXF WebProject

    4. **工具支持**:CXF提供了一套强大的工具,如WSDL(Web Service Description Language)生成器和客户端代码生成器,帮助开发者快速生成服务接口和客户端代码。 5. **扩展性**:CXF具有良好的扩展性,可以集成...

    Java webservice cxf客户端调用demo和服务端

    1. 生成客户端代理:CXF的WSDL2Java工具可以将服务端的WSDL(Web Service Description Language)文件转换为Java客户端代码,生成服务代理类。 2. 创建服务代理实例:通过代理类,客户端可以创建服务的实例,就像...

    CXF框架下的WebService

    2. **生成WSDL**: 使用CXF的wsdl2java工具,可以自动生成服务端和客户端的Java代码,只需要提供一个简单的WSDL(Web Service Description Language)文件。 3. **实现服务类**: 根据生成的服务接口,创建一个实现了...

    webservice cxf.jar 相关包

    在实际开发中,使用CXF可以极大地简化Web服务的开发过程,提高开发效率,并确保服务的安全性和互操作性。压缩包中的文件可能包含了CXF框架的完整组件,包括核心库和其他辅助库,这对于开发和部署基于CXF的Web服务...

    java调用java web service

    Java调用Java Web Service是Java开发中的一个常见任务,它涉及到Web服务的消费与交互,主要基于SOAP(Simple Object Access Protocol)协议。本篇将详细阐述这个过程,并结合标签“源码”和“工具”,探讨如何通过源...

    Apache CXF指南

    ### Apache CXF 指南知识点详解 #### 一、Apache CXF 框架介绍与Web Service 原理 ##### 1.1 Web Service ...同时,结合 SSL/TLS 加密技术,可以进一步提升 Web Service 的安全性,为数据通信提供更加可靠的保障。

    基于CXF的webService本地数据交互----PC端与Android端(二)

    3. 使用CXF生成服务端点:通过CXF的wsdl2java工具,我们可以从接口生成WSDL(Web Service Definition Language)文件,然后基于此生成服务端点类。 4. 部署服务:将服务部署到应用服务器,例如Tomcat,使它可以通过...

    cxf实现webservice的项目实例

    8. **安全与性能优化**:在生产环境中,你可能需要考虑Web服务的安全性,例如添加身份验证和授权机制。此外,优化如缓存策略、负载均衡等也是提高服务性能的重要步骤。 通过这个实例,你将对CXF实现Web服务有更深入...

Global site tag (gtag.js) - Google Analytics