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

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.

Acerca de esta tarea

Esta información sólo se aplica a JAX-WS (API de Java™ para servicios web XML .

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.

Con una aplicación cliente, la aplicación actúa como generador de solicitudes y consumidor de respuestas y se ejecuta como el cliente de aplicaciones Java EE (Java Platform, Enterprise Edition). El componente de consumidor de Web Services Security almacena las señales de seguridad que recibe en una de las propiedades del objeto MessageContext para la llamada de servicios web actual. Puede recuperar un conjunto de objetos de señales a través de la interfaz javax.xml.rpc.Stub de dicha llamada a servicios web. Debe saber qué señales de seguridad debe recuperar y sus ID de señal por si la cabecera de seguridad SOAP incluye muchas señales de seguridad. Efectúe los pasos siguientes para recuperar los datos de la señal de seguridad de una aplicación cliente.

Procedimiento

  1. Utilice la serie de claves com.ibm.wsspi.wssecurity.token.tokenPropergation para obtener la tabla de totales de control de las señales a través de un valor de propiedad de la interfaz javax.xml.ws.Stub. Los ejemplos siguientes muestran cómo obtener la tabla de totales de control:
    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. Busque los objetos de señal de destino en la tabla de totales de control. Cada objeto de señal de la tabla de totales de control se establece con su ID de señal como una clave. Para recuperar las señales de seguridad, debe conocer previamente los ID de señal de seguridad. El ejemplo siguiente muestra cómo recuperar un símbolo de nombre de usuario de la cabecera de seguridad con un valor de ID de símbolo determinado:
    com.ibm.wsspi.wssecurity.auth.token.UsernameToken unt;
    if (t != null) {
      unt = (com.ibm.wsspi.wssecuty.auth.token.UsernameToken)t.get(“…”);
    }

Resultados

Una vez completados esos pasos, habrá recuperado las señales de seguridad que se procesan mediante el manejador de seguridad de servicios web en una aplicación cliente.

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_retrievetokencl_jaxws
File name: twbs_retrievetokencl_jaxws.html