Java Web 服务: Axis2 WS-Security基础 - 编程入门网
EY_RAMPART_POLICY,
loadPolicy("policy.xml"));
options.setUserName("libuser");
options.setPassword("books");
client.engageModule("rampart");
配置内容包含在清单 6 中的最后一个代码块。包括从创建的 stub 中获得 org.apache.axis2.client.ServiceClient 实例并在客户机选项中设置策略信息(从类路径加载)和用户 名/密码。随后在客户机使用的 Axis2 配置中加入 Rampart 模块。完成这些操作后,可以使用 stub 访 问服务,就像不存在 WS-Security 一样,而 Rampart 将 UsernameToken 自动添加到每个请求。 确认结果 安装 Ant 后,可以从打开了示例代码目录的控制台运行 ant,以构建客户机和服务器代码。随后可以 将创建的 library-username.aar 文件部署到 Axis2 服务器安装(当然,包含 Rampart .jars 和 .mars ),并通过在控制台输入 ant run 来运行客户机。如果一切顺利的话,应当看到如 图 1 所示的输出: 图 1. 运行应用程序时的控制台输出 Java Web 服务: Axis2 WS-Security基础(7)时间:2011-10-02 ibm Dennis Sosnoski当然,仅仅用服务器运行客户机并不能向您表明发生的操作。可以使用 TCPMon 等工具充当客户机和 服务器之间的中间层,从而捕获消息交换以查看 WS-Security UsernameToken 的行为(见 参考资料)。 为此,首先需要设置 TCPMon 并在一个端口上接受来自客户机的连接,这个端口随后将连接转发给运行在 不同端口(或不同主机)上的服务器。然后可以编辑 build.properties 文件并将 host-port 的值修改 为侦听 TCPMon 的端口。如果再一次在控制台中输入 ant run,应当会看到消息发生了交换。清单 7 展 示了一个样例客户机消息捕捉: 清单 7. 使用 UsernameToken 的客户机消息
保护 UsernameToken 一个基本的明文形式的 UsernameToken 并不能直接提供很强的安全性,因为用户名和相应的密码对于 任何能够监视消息的人来说都是可见的。如果使用加密的通信通道,那么就可以解决这个问题 — 只要通 道加密非常可靠,外部无法监视消息。WS-SecurityPolicy 方便地定义了一种方法来使用加密过的通道, 如 清单 8 所示(同样,将一行代码分解为两行以匹配页面宽度 — 查看示例代码包的 secure-policy- server.xml 文件获得真实的策略): 清单 8. 要求 HTTPS 连接的策略
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |