快速业务通道

Java Web服务: Metro服务下的WS-Security - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
lt; callbacks.length; i++) {        if (callbacks[i] instanceof NameCallback) {          ((NameCallback)callbacks[i]).setName("libuser");        } else if (callbacks[i] instanceof PasswordCallback) {          ((PasswordCallback)callbacks[i]).setPassword("books".toCharArray());        } else {          throw new UnsupportedCallbackException(callbacks[i],            "Unsupported callback type");        }      }    } }

您并不是必须 使用回调来设置用户名或密码。如果用户名和密码被赋予的是固定值,您可以直接在 <wssc:CallbackHandler> 元素中设置它们,方法是使用 default="yyy"(在这里,属性值即实际 的用户名和密码)来替换 classname="xxx" 属性。

Java Web服务: Metro服务下的WS-Security(4)

时间:2011-07-25 IBM Dennis Sosnoski

服务器端应用

在服务器端,WSIT 配置信息需要包含在 WSDL 服务定义中。如 “Metro 简介” 所述,服务 WSDL 的 位置可以在服务 WAR 文件中的 WEB-INF/sun-jaxws.xml 里指定为一个参数。如果不使用 WSIT 特性,则 WSDL 是可选的;在这种情况下,WSDL 将在运行时自动生成。如果使用 WSIT 功能,则 WSDL 是必须的, 并且必须包含为服务所用的特性配置 WSIT 所需的任意自定义扩展元素。清单 4 展示了 清单 1 WSDL 服 务的策略部分,这次添加了一个 WSIT 自定义扩展元素来配置 UsernameToken 支持(以粗体显示):

清单 4. 带有 WSIT 服务器端扩展的 UsernameToken 策略

<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"  xmlns:wsu=    "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"    wsu:Id="UsernameToken">   <wsp:ExactlyOne>    <wsp:All>     <sp:SupportingTokens       xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">      <wsp:Policy>       <sp:UsernameToken sp:IncludeToken=".../IncludeToken/AlwaysToRecipient"/>      </wsp:Policy>     </sp:SupportingTokens>     <wsss:ValidatorConfiguration wspp:visibility="private"       xmlns:wsss="http://schemas.sun.com/2006/03/wss/server"       xmlns:wspp="http://java.sun.com/xml/ns/wsit/policy">      <wsss:Validator name="usernameValidator"        classname="com.sosnoski.ws.library.metro.PasswordValidator"/>     </wsss:ValidatorConfiguration>    </wsp:All>   </wsp:ExactlyOne> </wsp:Policy>

清单 4 中的服务器端 WSIT 扩展以 <wsss:ValidatorConfiguration> 元素和 <wsss:Validator> 子元素形式表示,指定将作为验证器回调使用的类。清单 5 给出了这个类的代 码,这个类必须实现 com.sun.xml.wss.impl.callback.PasswordValidationCallback.PasswordValidator 接口。在这里,它 只是针对固定值检查提供的用户名和密码,但它可以轻松使用一个数据库查询或其他机制替代。

清单5. 服务器回调代码

public class PasswordValidator implements  PasswordValidationCallback.PasswordValidator {    public bool

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号