<xenc:CipherValue>mirmi0KuFEEI56eu2U3cICz...</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedData>
</soap:Body>
</soap:Envelope>
WS-Security
应用于实际的 SOAP
消息交换。服务实现可以检验 WS-Security 是否
恰当应用于传入的消息,但是客户机需要提前知道它们必须实现什么才能使用服务。由于
WS-Security 的复杂性以及所支持的选项有限,因此仅使用文本描述很难实现这个目的,
而手动配置 WS-Security 处理极容易出现错误。WS-Policy
是一个用于为 Web 服务指定扩
展需求的通用结构,而 WS-SecurityPolicy
是一个专门针对 WS-Security
支持的 WS-Policy
扩展。这两者合起来可以以机器可读的方式描述 WS-Security 需求。WS-Policy
和 WS-
SecurityPolicy
信息可以单独使用,也可以直接嵌入到 Web Services Description Language
(WSDL)
文档内部,这样 Web 服务框架就可以将它们自动配置为服务的需求。
Rampart 简介
Rampart
是 Axis2
的 安 全 模 块 , 支 持 WS-Security 、 WS-SecurityPolicy 、 WS-
SecureConversation
和 WS-Trust
。在本文中,您将只查看 Rampart
的 WS-Security
和 WS-
SecurityPolicy 功能;后续文章将讨论其他特性。
由 于 Rampart 是 以 模 块 形 式 实 现 (
—
实 际 上 是 一 对 模 块
rampart.mar 和
rahas.mar)
,它将插入到 Axis2 处理框架中并在出站和入站处理的特定点拦截消息,检查
对消息的修改或根据需要对消息作出修改,从而完成工作。
安装 Rampart
Rampart
附带了一些 .jar 文件(
在发行版的 lib 目录中)
,以及一对 .mar 模块文件
(
位于 dist 目录中)
。您必须将 .jar
文件添加到类路径中才能对 Axis2
使用 Rampart,并且必
须将 .mar
文件添加到类路径或 Axis2 库结构中。
处理 Rampart .jar
和 .mar
文件的最简单方法是将它们添加到 Axis2 安装中。可以
从 Rampart lib
目录中直接将 .jar
文件复制到 Axis2 lib
目录,从 Rampart dist 目录中直接
将 .mar
文件复制到 Axis2 库/模块目录中。(
还可以使用 Ant build.xml
在 Rampart 样例目录
中将文件复制给 Axis2
安装。只需要将 AXIS2_HOME
环境变量设置为 Axis2 安装目录并
从打开 Rampart
样例目录的控制台运行 ant)。
对于众多 WS-Security
特性,您还需要向 JVM
安全配置添加 Bouncy Castle 安全
提供程序,向 Axis2
安装添加 Bouncy Castle .jar。本系列后续文章中涉及的其他安全特性
(
不包括本文将介绍的 UsernameToken)需要使用这一步骤。由于某些安全算法涉及专利问
题,Bouncy Castle .jar
可以从 Rampart 独立下载(
见 参考资料)
。为您的 Java 运行时下载合