快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
可以使用相同的技术来指定一个类而不是密码。

清单 8. 使用 WSIT 服务器端扩展签署并加密策略

<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="SignEncr">   <wsp:ExactlyOne>    <wsp:All>     <sp:AsymmetricBinding xmlns:sp=     "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">      <wsp:Policy>       ...      </wsp:Policy>     </sp:AsymmetricBinding>     <sp:SignedParts       xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">      <sp:Body/>     </sp:SignedParts>     <sp:EncryptedParts       xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">      <sp:Body/>     </sp:EncryptedParts>     <wsss:KeyStore alias="serverkey"       keypass="com.sosnoski.ws.library.metro.KeystoreAccess"       location="server.keystore" storepass="nosecret"       xmlns:wspp="http://java.sun.com/xml/ns/wsit/policy"  wspp:visibility="private"       xmlns:wsss="http://schemas.sun.com/2006/03/wss/server"/>     <wsss:TrustStore location="server.keystore" storepass="nosecret"       xmlns:wspp="http://java.sun.com/xml/ns/wsit/policy"  wspp:visibility="private"       xmlns:wsss="http://schemas.sun.com/2006/03/wss/server"/>    </wsp:All>   </wsp:ExactlyOne> </wsp:Policy>

清单 9 展示了这个示例使用的 CallbackHandler 接口的实现:

清单 9. 服务器密匙存储密码回调代码

public class KeystoreAccess implements CallbackHandler {    public void handle(      Callback[] callbacks) throws IOException, UnsupportedCallbackException {      for (int i = 0; i < callbacks.length; i++) {        Callback callback = callbacks[i];        if (callback instanceof PasswordCallback) {          ((PasswordCallback)callback).setPassword("serverpass".toCharArray());        } else {          throw new UnsupportedCallbackException(callback, "unknown  callback");        }      }    } }

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

时间:2011-07-25 IBM Dennis Sosnoski

构建并运行示例代码

签名与加密示例使用的 构建步骤 与 UsernameToken 示例相同,但是您必须修改 build.properties 文件以使用 variant-name=signencr(而不是 UsernameToken 示例使用的 username)。

互操作性问题

如果您使用 Axis2/Rampart 客户端与 Metro/WSIT 服务器(或者相反),当客户端尝试添加一本国际 标准书籍编号(International Standard Book Number,ISBN)相同的书时,您可能会遇到问题。在这种 情况下,服务器将返回一个 Fault,而不是通常的 SOAP 响应消息。Axis2/Rampart 1.5.x 发布版正确地 执行了 WSDL 在这里

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