在客户机应用程序中从 JAAS 主题检索令牌

在 WebSphere® Application Server V6 中,安全性处理程序负责传播安全性令牌。这些安全性令牌嵌入在简单对象访问协议(SOAP)安全性头中,并传递到下游的服务器。安全性令牌包括在 com.ibm.wsspi.wssecurity.auth.token.Token 接口的实现类中。您可以从服务器应用程序或客户机应用程序检索安全性令牌数据。

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

  1. 通过 javax.xml.rpc.Stub 接口中的属性值,使用 com.ibm.wsspi.wssecurity.token.tokenPropergation 关键字字符串获取令牌的散列表。 以下示例说明如何获取散列表:
    java.util.Hashtable t;
    javax.xml.rpc.Service serv = …;
    MyWSPortType pt = (MyWSPortType)serv.getPort(MyWSPortType.class);
    t = (Hashtable)((javax.xml.rpc.Stub)pt)._getProperty( 
    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(“…”);
    }
完成这些步骤后,您就从客户机应用程序中的 JAAS 主题检索了安全性令牌。
相关概念
安全性令牌

反馈