您的位置:jsp学习站首页 >> JAVA类 >> JAVA高级 >> 企业应用的Web服务安全技术:框架(图)

企业应用的Web服务安全技术:框架(图) (3)

[ 来源:互网络 | 更新日期:2007-09-06 04:21:17 | 浏览次数:13456]
简介:在本系列的第1部分中回顾了现有的解决方案及其缺陷,并提出开发一个新的Web服务安全工具包的方案,此工具包可以解决其中部分缺陷(见第一部分)。本文将进一步介绍此Web服务安全工具包的框架(下载部分源代码),并解释工具包内Web服务安全的特性与Java语言的面向对象特性之间的高层抽象映射关系。
.dom.Document对象,不合适的文档对象会在添加元素时产生错误。标记类基类WsToken类、WsConpositeToken类以及帮助类WsTokenHelper具有处理XML文档的功能。
  
  ?虽然标记引用类型也都是从基类wsse.Toolkit.Tokens.WsToken派生的,但是大多数引用类型的作用是引用现存的XML元素,不是作为本身可以被添加的元素。不过,在下面的WSSE映射部分会提到一些特殊的标记引用类型,除具有引用元素功能外,本身也可以作为被添加的元素。
  
  ?标记引用类型可以引用不同的安全信息头部中的标记元素??此功能有助于在新的WSSE头部中添加现有标记元素的功能的实现。标记引用类型甚至可以引用在安全处理过程的初期添加的当前不存在的元素, 比如前面代码示例中加密签名元素构成的元素。
  
  ?标记帮助类的责任是实例化标记类型对象和标记处理器对象,并将二者联系起来处理,当然这需要适当的配置信息以及初始化工作。标记处理器类型的责任是操作标记帮助类的处理结果,比如在安全头部中添加一个新产生的数字签名元素。处理器接口的要约是仅对引用标记进行适当的处理,并不对此处理过程中产生的新标记进行任何操作。
  
  ?处理操作可以连接起来构成处理操作链。这样,可以对多个安全头部的入口签名,然后对签名加密, 如上面客户处代码示例。
  
  工具包提供了轻量的对象层次,处理每次客户调用时,会实例化一些具有仅于自己上下文环境关联的对象, 因此不必担心并发问题。工具包中大多数类没有提供同步化锁,只有wsse.Toolkit.Utils.Xml.XmlFactory 类和 wsse.Toolkit.Utils.Config.ConfigHelper类除外,这两个类提供了一些可以被多个线程共享的功能。对于配置的目录服务和SAML服务实现提供者来说,由于工具包的所有运行客户都访问相同的提供者,它们的实现必须是线程安全的。
  
  WSSE映射
  
  现在,将要讨论工具包内的组件是如何与WSSE规范规定的主要构建块的映射关系。注意:WSSE 规范的第5部分对<wsse:Security>头部块是这样定义的,“<wsse:Security>头部块以SOAP行动者或角色的形式存在,提供在在SOAP信息中添加针对特定接收者的安全相关信息的机制”, 这意味着, WSSE安全头部是可以扩展的, 同时在所有可能使用此技术的应用中试图使用它是不合适的。 因此,工具包框架仅对规范中规定的标记类型及其关系进行映射,同时可以在以后添加新的标记类型及其处理器。
  
 
  图2.Web服务安全标准文档组织图

  
  如图2所示,Web服务安全标准系统实际上由几个相关的标准文档组成。首要的是WSSE 规范,其中定义了欲添加到安全头部的信息的基本规则以及如何在SOAP信息中添加安全头部的规则。此规范是基本部分,仅包含安全标记XML元素定义的“骨架”部分,至于安全标记XML元素的内容定义以及应用规则,则由所谓的“侧面标准”文档(参考下文相关部分)确定。
  
  一个完整的已签名WSSE头部文件,其中包含许多不同类型的安全标记以及一个SAML断言声明,可以使用IE或者基于Mozilla的浏览器可以在此文件超链接处浏览(也包含在可下载源代码中)。图3是一个包含几个标记及一个签名元素的WSSE头部,并附有相关标记的注解。
  

  图3. 带有注解的WSSE头部

  
  安全标记
  
  WSSE规范的第6部分描述了可以添加到安全头部的各种不同类型的安全标记。这些
[1] [2] [3] [4] [5] [6]
Tags:关键字:企业 安全技术 框架
责任编辑:glen