`
student_lp
  • 浏览: 437052 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WebService编程详解之安全应用

阅读更多

一、概述

CXF 的 WS-Security 实现基于开放源码的 WSS4J 库。Axis2 代码也使用这个库,因此这两个堆栈的 WS-Security 配置细节有一些相似之处。但是,通过解释 WS-SecurityPolicy 配置 WSS4J 的代码层不一样。在 Axis2 中这由单独发布的 Rampart 模块处理,而在 CXF 中由 cxf-rt-ws-policy 和 cxf-rt-ws-security 模块处理(这些模块包含在标准的 cxf-#.jar 中,其中的 #是版本号)。

WS-Security提供了一些方法保证你的服务安全,常用的有以下方法:

      ①在两个服务之间传递授权标识。

      ②加密传递的信息或加密传递信息中重要部分。

      ③对传递的信息进行数字签名

      ④Timestamp messages

当前,CXF通过整合WSS4J实现WS-Security,为了能够使用这个整合,我们需要配置一些interceptors(拦截器)并且将他们安装到服务端或客户端。

二、WSS4J是什么?主要使用来做什么的?

WSS4J是一个OASIS Web服务安全实现,他是一个重要的Java库,主要用来签名和验证SOAP信息通过WS-Security信息。它主要的用途有:XML签名、XML加密和用户令牌(Username Tokens)、Timestamps、SAML Tokens。并且WSS4J支持X.509证书和证书路径。如果要想详细了解,请看他的doc: http://ws.apache.org/wss4j/api.html

常用方法简介:

①SOAPEnvelope数字签名:


②SOAPEnvelope加密:


③用户授权


④例子:




三、通过采用Spring XML 配置WSS4J拦截器(interceptors)实现

(1)授权服务

(2)数字签名服务

(3)加密服务

如果你的服务是通过Spring建立的,那么通过配置Spring XML文件很容易配置WSS4J拦截器。在CXF官方文档中讲解了两种配置方式,分别是原始的WS-Security配置和WS-SecurityPlolicy配置,其中WS-SecurityPolicy是WS-Security的替代品,他提供更简单更标准的方式配置security。并且在WS-Security中的后台元素在WS-SecurityPolicy中仍然有效,并且有时需要去了解。

WS-SecurityPolicy配置说明如下:

    ① ws-security.username—用户名(UsernameToken中应用)

    ②WS-Security.password—密码(UsernameToken中应用),如果没有指定,就会调用callback Handler。

    ③ws-security.callback-handler—WSS4J安全处理Handler,通常用来检索密码为Keystores或者为UsernameToken。

    ④ws-security.signature.properties—数字签名配置文件,通常用来配置签名的Keystore和密钥对象。

    ⑤ws-security.encryption.properties—加密配置文件。通常用来配置签名的Keystore和密钥对象。

    ⑥ws-security.signature.username—KeyStore中的密钥别名(用来进行签名)如果在Spring中没有配置,将会查找配置文件中的配置的别名,如果在配置文件中没有配置,并且在KeyStore中仅包含一个密钥,那么就会用这个密钥。

    ⑦ws-security.encryption.username-- KeyStore中的密钥别名(用来进行加密)如果在Spring中没有配置,将会查找配置文件中的配置的别名,如果在配置文件中没有配置,并且在KeyStore中仅包含一个密钥,那么就会用这个密钥。如果在服务器端设置为useReqSigCert,这表示应该使用请求签名所用的客户机证书对响应进行加密。使用这个设置让服务器代码可以处理多个客户机,每个客户机有自己的证书。

    ⑧ws-security.signature.crypto—代替签名配置文件,它能够指向密钥对象。它允许更容易的密钥信息配置方案。

    ⑨ws-security.encryption.crypto--代替加密配置文件,它能够指向密钥对象。它允许更容易的密钥信息配置方案

UsernameToken 是向 WS-Security 提供用户名和密码对的标准方法。可以以明文形式发送密码信息,也可以以散列值形式(经过加密处理)发送。它对于需要直接身份验证的许多应用程序很方便。

例子如下

    Spring XML配置文件如下:


     常用配置文件如下:

有关Spring中配置简介,例子如下


 

  • 大小: 29.3 KB
  • 大小: 32.9 KB
  • 大小: 27 KB
  • 大小: 12.4 KB
  • 大小: 12.8 KB
  • 大小: 22.4 KB
  • 大小: 18.9 KB
  • 大小: 5.4 KB
  • 大小: 35.8 KB
分享到:
评论

相关推荐

    客户端编程方式调用webservice

    本篇文章将详细介绍如何通过客户端编程方式使用Java调用WebService。 首先,让我们理解Java中调用WebService的基本步骤: 1. **获取WSDL文件**:WSDL是WebService的接口定义,它描述了服务的位置、服务提供的操作...

    vb6.0调用webservice详解

    在IT行业中,VB6.0(Visual Basic 6.0)是微软公司开发的一款经典编程环境,用于构建Windows桌面应用程序。而Web Service是一种基于互联网的、采用标准XML(Extensible Markup Language)进行通信的软件系统,它允许...

    pb11+webservice 分布式三层应用实现说明word

    PB11(PowerBuilder 11)是一款由Sybase公司推出的可视化编程工具,主要用于开发企业级的客户端/服务器(Client/Server)和Web应用程序。它以其强大的数据窗口组件和易用性著称,广泛应用于数据库应用开发。而...

    WebService详解

    **WebService详解** WebService是一种基于XML(可扩展标记语言)的通信协议,用于构建跨平台、跨语言的分布式应用程序。它的核心理念是提供一种标准的方式来暴露业务逻辑,使得不同系统之间可以互相调用服务,实现...

    ebs发布webservice详解

    在IT领域,特别是企业级应用服务(EBS)与Web服务集成方面,Oracle E-Business Suite(EBS)提供了一套强大的工具和技术,允许企业通过Web服务接口将EBS的功能暴露给外部系统或应用程序。本文将深入探讨在EBS中发布...

    webService详解及教程

    Web服务(WebService)是一种基于互联网的、用于不同应用程序之间互相通信的技术。它的核心目标是让软件应用能够跨过网络障碍,实现异构系统间的无缝数据交换。在本教程中,我们将深入探讨Web服务,特别是JSON作为...

    webservice 开发实例 详解

    Web服务(WebService)是一种基于互联网的,用于应用程序之间交互的技术。它通过标准的XML(可扩展标记语言)和SOAP(简单对象访问协议)进行通信,允许不同系统间的数据交换,打破了平台和编程语言的障碍。本实例将...

    Java+Webservice调用方式详解

    Java作为一种广泛使用的编程语言,在开发基于Webservice的应用时具有天然优势。本文将详细介绍两种主流的Java调用Webservice的方式:Axis和SOAP,并通过具体代码示例进行阐述。 #### 二、Axis 方式调用 Webservice ...

    Domino的WebService服务

    【Lotus Domino与WebService服务详解】 Lotus Domino是一款强大的企业级协作软件,它不仅提供了电子邮件、日历、任务管理等功能,还支持通过WebService技术与其他系统进行数据交换和交互。在本文中,我们将深入探讨...

    WebService之CXF

    【WebService之CXF详解】 1. WebService概念解析: WebService是一种基于互联网的、平台独立的通信方式,它允许不同的系统之间通过网络交换数据,实现了应用程序间的互操作性。这种技术利用XML(eXtensible Markup...

    WebService

    【WebService详解】 WebService是一种基于互联网的、平台独立的交互服务技术,它允许不同的应用程序之间进行数据交换和功能调用。WebService的核心技术包括XML(可扩展标记语言)、SOAP(简单对象访问协议)、WSDL...

    webservice之通俗理解

    ### WebService之通俗理解 #### 一、WebService简介与应用场景 WebService是一种标准的网络服务,它使得不同系统之间可以通过标准的协议(如HTTP)进行数据交换和服务调用,而无需关心底层实现细节。WebService...

    WebService描述语言WSDL详解

    **WebService描述语言WSDL详解** WebService是一种基于XML的开放标准,允许不同系统通过网络进行通信和数据交换。在WebService的世界里,WSDL(Web Services Description Language)扮演着至关重要的角色,它是一种...

    SAP调用外部WebService.docx编程资料

    ### SAP调用外部WebService知识点详解 #### 一、概述 SAP系统中调用外部WebService是一种常见的集成场景,主要用于实现SAP系统与非SAP系统的数据交换或业务流程交互。本文将详细介绍如何在SAP系统中配置并调用外部...

    WebService教程详解(一)

    【WebService详解】 WebService是一种基于Web的应用程序接口,它利用HTTP协议进行通信,使得不同系统间的应用程序可以相互通信。在本教程中,我们将深入探讨WebService的核心概念和技术。 **1. WebService工作原理...

    利用WebService编写的SendEMail程序

    【WebService详解】 WebService是一种基于互联网的、松散耦合的服务交互模式,它允许不同系统间的应用程序通过网络进行通信。在本示例中,“利用WebService编写的SendEMail程序”是利用了WebService技术来发送电子...

    Myeclipse创建的webservice应用源码

    【Myeclipse创建的Webservice应用源码详解】 在IT行业中,Web服务是不同系统间进行数据交换和交互的一种标准方式。Webservice基于开放的XML(可扩展标记语言)标准,使得不同平台、不同编程语言的系统能够无缝对接...

    05.WebService核心之WSDL深入详解

    Web服务(WebService)是一种基于开放标准的,使得不同系统间能够进行互操作的网络应用程序。...通过观看"05.WebService核心之WSDL深入详解.wmv"这个视频,相信你能对WSDL有更深入的理解,并能应用于实际项目中。

Global site tag (gtag.js) - Google Analytics