测试 SOA 中基于 Human Task 的服务(上)

发表于:2009-3-23 13:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:王海艳、杨乐    来源:IBM

分享:

  编写 WS-Security 相关的辅助类

  为了在 Web 服务的请求中加入 UsernameToken 信息,需要编写一个辅助的 SOAP 消息 Handler,来配合生成的 Java 客户端一起使用。在 SOAP 消息发出前,该 Handler 会将用户名密码以 WS-Security 定义的格式写入消息头部,用以标识服务调用者的身份。下面是 Handler 的部分代码,完整的类定义可在附件中得到。

  代码一 SOAP 消息 Handler

public class UsernameTokenSigner extends GenericHandler {

// ……

 public boolean handleRequest(MessageContext mc) {

 try {

 SOAPMessage msg = ((SOAPMessageContext) mc).getMessage();

 SOAPPart part = msg.getSOAPPart();

 SOAPEnvelope envelope = part.getEnvelope();

 SOAPHeader header = envelope.getHeader();

 if (header == null)

 header = envelope.addHeader();

 SOAPHeaderElement wsSecurityElement = (SOAPHeaderElement)\

 header.addChildElement(wsSecurityElementName);

 wsSecurityElement.setMustUnderstand(true);

 SOAPElement userNameTokenElement =

 wsSecurityElement.addChildElement("UsernameToken", "wsse");

 SOAPElement userNameElement =

 userNameTokenElement.addChildElement("Username", "wsse");

 userNameElement.addTextNode(username);

 SOAPElement passwordElement =

 userNameTokenElement.addChildElement("Password", "wsse");

 passwordElement.addTextNode(password);

 passwordElement.addAttribute(envelope.createName(TYPE), PASSWORD_TYPE);

 } catch (SOAPException e) {

 }

 return true;

}

// ……

}

43/4<1234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号