Desarrollo de aplicaciones de servicios web que recuperan señales del Sujeto JAAS de una aplicación de servidor

Con una aplicación de servidor, la aplicación actúa como consumidor de solicitudes y el generador de respuestas se despliega y se ejecuta en el contenedor Java™ EE (Java Platform, Enterprise Edition). El componente de consumidor para la seguridad de servicios web almacena las señales de seguridad que recibe en el Sujeto JAAS (Java Java Authentication and Authorization Service) de la hebra actual. Puede recuperar los símbolos de seguridad del Sujeto JAAS que se mantiene como una hebra local del contenedor.

Acerca de esta tarea

Esta información se aplica sólo a los servicios web JAX-RPC (API de Java para RPC basado en XML).

Los manejadores de seguridad son responsables de propagar señales de seguridad. Estas señales de seguridad se incluyen en la cabecera de seguridad SOAP y se pasan a los servidores en sentido descendente. Las señales de seguridad se encapsulan en las clases de implementación de la interfaz com.ibm.wsspi.wssecurity.auth.token.Token. Puede recuperar los datos de la señal de seguridad de una aplicación de servidor o de una aplicación cliente.

Efectúe los pasos siguientes para recuperar los datos de la señal de seguridad de una aplicación de servidor:

Procedimiento

  1. Obtenga el Sujeto JAAS de la hebra actual utilizando la clase del programa de utilidad WSSubject. Si habilita la seguridad Java 2 en el panel de seguridad global de la consola administrativa, se impide el acceso al Sujeto JAAS si el código de la aplicación no obtiene el permiso javax.security.auth.AuthPermission("wssecurity.getCallerAsSubject"). El ejemplo de código siguiente muestra cómo obtener el Sujeto JAAS:
    javax.security.auth.Subject subj;
             try {
    subj = com.ibm.websphere.security.auth.WSSubject.getCallerSubject();
    } catch (com.ibm.websphere.security.WSSecurityException e) {
      …
    }
  2. Obtenga un conjunto de credenciales privadas del Sujeto. Para obtener más información, consulte la clase de la interfaz de programas de aplicación, la API, com.ibm.websphere.security.auth.WSSubject. Para acceder a esta información en el Information Center, pulse Referencia > Desarrollador > Documentación de la API > Interfaces del programa de aplicación. En el artículo Application Programming Interfaces (Interfaces del programa de aplicación), pulse com.ibm.websphere.security.auth > WSSubject.
    Atención: Cuando está habilitada la seguridad Java 2, es posible que tenga que utilizar la clase AccessController para que al operar con los objetos de seguridad del contenedor Java EE no se produzca una violación de seguridad.
    El siguiente ejemplo de código muestra cómo establecer la clase AccessController y obtener las credenciales privadas:
    Set s = (Set) AccessController.doPrivileged(new PrivilegedAction() {
       public Object run() {
       return subj.getPrivateCredentials();
       }
          });
  3. Busque la clase de señal de destino en las credenciales privadas. Puede buscar la clase de señal de destino utilizando la interfaz java.util.Iterator. El ejemplo siguiente muestra cómo recuperar una señal de nombre de usuario con un valor de ID de señal determinado en la cabecera de seguridad. También puede utilizar otras llamadas a método para recuperar las señales de seguridad. Para obtener más información, consulte los documentos de las API (interfaces de programas de aplicación) para las clases de símbolos personalizados o de la interfaz com.ibm.wsspi.wssecurity.auth.token.Token.
    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;
      }
    }

Resultados

Después de realizar estos pasos, habrá recuperado las señales de seguridad del Sujeto JAAS en un servidor de aplicaciones.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_retrievetokensrvr
File name: twbs_retrievetokensrvr.html