快速业务通道

Java Web 服务: Axis2 WS-Security基础 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
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基础 - 编程入门网

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 的客户机消息

<?xml version=''1.0'' encoding=''UTF-8''?> <soapenv:Envelope  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">   <soapenv:Header>   <wsse:Security xmlns:wsse="...wss-wssecurity-secext- 1.0.xsd"     soapenv:mustUnderstand="1">    <wsse:UsernameToken  xmlns:wsu="...wss-wssecurity-utility-1.0.xsd"      wsu:Id="UsernameToken- 1815911473">     <wsse:Username>libuser</wsse:Username>      <wsse:Password Type="...wss-username-token-profile-1.0#PasswordText"        >books</wsse:Password>    </wsse:UsernameToken>    </wsse:Security>  </soapenv:Header>  <soapenv:Body>    <ns2:getBooksByType xmlns:ns2="http://ws.sosnoski.com/library/wsdl">     <ns2:type>scifi</ns2:type>   </ns2:getBooksByType>   </soapenv:Body> </soapenv:Envelope>

保护 UsernameToken

一个基本的明文形式的 UsernameToken 并不能直接提供很强的安全性,因为用户名和相应的密码对于 任何能够监视消息的人来说都是可见的。如果使用加密的通信通道,那么就可以解决这个问题 — 只要通 道加密非常可靠,外部无法监视消息。WS-SecurityPolicy 方便地定义了一种方法来使用加密过的通道, 如 清单 8 所示(同样,将一行代码分解为两行以匹配页面宽度 — 查看示例代码包的 secure-policy- server.xml 文件获得真实的策略):

清单 8. 要求 HTTPS 连接的策略

<wsp:Policy wsu:Id="UsernameToken" xmlns:wsu= "http://do

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号