Desarrollo de aplicaciones de servidores de servicios web basados en JAX-WS que recuperan señales de seguridad

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 las señales de seguridad del Sujeto JAAS que se mantiene como una hebra local del contenedor.

Acerca de esta tarea

Esta información sólo se aplica a JAX-WS (API de Java para servicios web 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 API 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.getCallerSubject"). El ejemplo de código siguiente muestra cómo obtener el Sujeto JAAS:
    javax.security.auth.Subject subject;
    
             try {
    subject = 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 de 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 una aplicación de servidor.

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_jaxws
File name: twbs_retrievetokensrvr_jaxws.html