开发用于从服务器应用程序中的 JAAS 主体集检索令牌的 Web Service 应用程序

使用服务器应用程序,应用程序充当请求使用者,响应生成器在 Java™ Platform, Enterprise Edition (Java EE) 容器中部署并运行。Web Service 安全性的使用者组件存储它在当前线程的 Java 认证和授权服务 (JAAS) 主体集中接收的安全性令牌。可以从 JAAS 主体集检索在容器中作为本地线程的安全性令牌。

关于此任务

此信息仅适用于 Java API for XML-based RPC (JAX-RPC) Web Service。

安全处理程序负责传播安全性令牌。这些安全性令牌嵌入在 SOAP 安全头中,并被传递到下游服务器。安全性令牌包括在 com.ibm.wsspi.wssecurity.auth.token.Token 接口的实现类中。您可以从服务器应用程序或客户机应用程序检索安全性令牌数据。

完成以下步骤从服务器应用程序检索安全性令牌数据:

过程

  1. 使用 WSSubject 实用程序类获取当前线程的 JAAS 主体集。 如果您在管理控制台中的“全局安全性”面板上启用 Java 2 安全性,那么当未授予应用程序代码 javax.security.auth.AuthPermission("wssecurity.getCallerAsSubject") 许可权时,将拒绝访问 JAAS 主体集。 以下代码样本说明如何获取 JAAS 主体集:
    javax.security.auth.Subject subj;
    try {          
    subj = com.ibm.websphere.security.auth.WSSubject.getCallerSubject();
    } catch (com.ibm.websphere.security.WSSecurityException e) {
      …
    }
  2. 从主体集获取一组专用凭证。 要获取更多信息,请通过信息中心参阅应用程序编程接口 (API) com.ibm.websphere.security.auth.WSSubject 类。要在信息中心内访问此信息,请单击参考 > 开发者 > API 文档 > 应用程序编程接口。在“应用程序编程接口”一文中,单击 com.ibm.websphere.security.auth > WSSubject
    注意: 启用 Java 2 安全性时,可能需要使用 AccessController 类来避免由于在 Java EE 容器中操作安全对象而引起的安全违例。
    以下代码样本说明如何设置 AccessController 类并获取专用凭证:
    Set s = (Set) AccessController.doPrivileged(new PrivilegedAction() {
       public Object run() { 
       return subj.getPrivateCredentials();
       }
          });
  3. 在专用凭证中搜索定向令牌类。 您可以使用 java.util.Iterator 接口来搜索定向令牌类。以下示例说明如何在安全头中检索具有特定令牌标识值的用户名令牌。还可以使用其他方法调用检索安全性令牌。有关更多信息,请参阅 com.ibm.wsspi.wssecurity.auth.token.Token 接口或定制令牌类的应用程序编程接口 (API) 文档。
    com.ibm.wsspi.wssecurity.auth.token.UsernameToken unt;
    Iterator it = s.iterator();
    while (it.hasNext()) {
      Object obj = it.next();
      if (obj != null &&
    obj instanceOf com.ibm.wsspi.wssecurity.auth.token.UsernameToken) {
        unt =(com.ibm.wsspi.wssecurity.auth.token.UsernameToken) obj;
    if (unt.getId().equals(“…”)) break;
    else continue;
      }
    }

结果

完成这些步骤后,您就从服务器应用程序中的 JAAS 主体集检索了安全性令牌。

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



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