开发用于检索安全性令牌的基于 JAX-WS 的 Web Service 客户机应用程序

安全处理程序负责传播安全性令牌。这些安全性令牌嵌入在 SOAP 安全头中,并被传递到下游服务器。

关于此任务

此信息仅适用于 Java™ API for XML-Based Web Services (JAX-WS)。

安全性令牌包括在 com.ibm.wsspi.wssecurity.auth.token.Token 接口的实现类中。您可以从服务器应用程序或客户机应用程序检索安全性令牌数据。

使用客户机应用程序,应用程序充当请求生成者和响应使用者,并作为 Java Platform, Enterprise Edition (Java EE) 客户机应用程序运行。Web Service 安全性的使用者组件存储它在当前 Web Service 调用的 MessageContext 对象的其中一个属性中接收的安全性令牌。可以通过该 Web service 调用的 javax.xml.rpc.Stub 接口来检索一组令牌对象。您必须了解要检索哪些安全性令牌及其令牌标识,以防 SOAP 安全头中包含多个安全性令牌。完成以下步骤从客户机应用程序检索安全性令牌数据:

过程

  1. 通过 javax.xml.ws.Stub 接口中的属性值,使用 com.ibm.wsspi.wssecurity.token.tokenPropergation 密钥字符串获取令牌的散列表。 以下示例说明如何获取散列表:
    java.util.Hashtable t;
    
    javax.xml.ws.Service serv = ...;
    serv.addPort(...);
    javax.xml.ws.Dispatch<Object> dispatch = svc.createDispatch(...);
    
    Map<String, Object> requestContext = dispatch.getRequestContext(); 
    requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, ..);
    requestContext.put(BindingProvider.SOAPACTION_USE_PROPERTY, ..);
    requestContext.put(BindingProvider.SOAPACTION_URI_PROPERTY, ..);
    
    String response = dispatch.invoke(body.toString());
    
    Map<String, Object> responseContext = dispatch.getResponseContext();
    
    t = (Hashtable) responseContext.get( 
    com.ibm.wsspi.wssecurity.Constants.WSSECURITY_TOKEN_PROPERGATION);
  2. 在散列表中搜索定向令牌对象。 散列表中的每个令牌对象都用其令牌标识设置为关键字。您必须事先了解安全性令牌标识来检索安全性令牌。以下示例说明如何从具有特 定令牌标识值的安全头检索用户名令牌:
    com.ibm.wsspi.wssecurity.auth.token.UsernameToken unt;
    if (t != null) {
      unt = (com.ibm.wsspi.wssecuty.auth.token.UsernameToken)t.get(“…”);
    }

结果

完成这些步骤后,您已在客户机应用程序中检索了 Web Service 安全处理程序处理的安全性令牌。

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_retrievetokencl_jaxws
文件名:twbs_retrievetokencl_jaxws.html