Java Web 服务: Metro 服务下的 WS-Security
2010-02-02 00:00:00 来源:WEB开发网正如 “Metro 简介” 所述,JAXB 2.x 数据绑定的参考实现和 JAX-WS 2.x 网络服务规范是 Metro 网络服务框架的核心。但是 JAXB 与 JAX-WS 本身只提供基本的网络服务支持,JAX-WS 并不包括 WS-* 技术,不能升级 SOAP 以便在企业级应用环境中工作,所以需要一些其他的软件组件来支持 WS-* 技术。
在 Metro 中,添加的主要组件是 Web 服务互操作性技术(Web Services Interoperability Technologies,WSIT)。WSIT 是原来称为 Project Tango 的当前版本,Project Tango 是 Sun 公司为实现某些 WS-* 特性(包括安全可靠的消息传递)与 Microsoft .NET 平台之间的互操作性而付出的努力。WSIT 向 Metro 提供 WS-SecurityPolicy、WS-Trust、WS-SecureConversation、WS-ReliableMessaging 等服务规范支持。而 WS-Security 的实际运行时处理由另外一个添加的组件 —— XML and WebServices Security Project (XWSS) 来实现。
本文展示如何通过 Metro 来使用和配置 WS-Security,将其作为一个独立的 Web 应用程序在 Glassfish 服务器外部使用。参见 下载 部分获取本文中的全部示例的完整源代码,该代码实现了此前在本系列中使用的简单图书馆管理服务。
WSIT 基础
WSIT 负责配置 Metro 运行时以匹配一个服务的 WS-Policy 规范,包括诸如 WS-SecurityPolicy 之类的 WS-Policy 扩展。除标准的 WS-Policy 扩展外,Metro 还使用策略文档中的自定义扩展来配置实现安全处理所需的用户信息(如密匙存储位置和密码)。
WSIT 从 Web Services Description Language (WSDL) 服务描述中获取策略信息。在客户端,这可能难以理解一些,因为用于 WSIT 配置的 WSDL 与用于定义 JAX-WS 服务的 WSDL 是分开的。如 “Metro 简介” 所述,用于配置 JAX-WS 客户端的 WSDL 可以直接从服务获取,也可以从生成 JAX-WS 代码之时指定的位置获取。WSIT 使用的 WSDL 有一个固定的文件名(虽然这个文件能够使用一个 <wsdl:import> 标记来引用一个带有完整 WSDL 的独立文件),并且总是通过类路径访问。
更多精彩
赞助商链接