Desarrollo de un TAI personalizado para Liberty

Puede desarrollar una clase TAI (Trust Association Interceptor) personalizada implementando la interfaz com.ibm.wsspi.security.tai.TrustAssociationInterceptor proporcionada en el servidor de Liberty.

Acerca de esta tarea

La interfaz TAI (Trust Association Interceptor) es una API de proveedor de servicios que permite integrar servicios de seguridad de terceros con un servidor de Liberty. Cuando procesa la solicitud web, el servidor de Liberty invoca y pasa HttpServletRequest y HttpServletResponse a los interceptores TAI. HttpServletRequest llama al método isTargetInterceptor del interceptor para ver si el interceptor puede procesar la solicitud. Una vez seleccionado un interceptor TAI adecuado, se procesa HttpServletRequest mediante el método negotiateValidateandEstablishTrust del interceptor y se devuelve el resultado en un objeto TAIResult. Puede añadir su propio código de lógica a cada método de la clase TAI personalizada.

Consulte también el documento de la API Java™ para la interfaz TAI. La documentación de la API Java para cada API de Liberty está disponible en un archivo .zip separado en uno de los subdirectorios javadoc del directorio ${wlp.install.dir}/dev.

Ejemplo

A continuación se muestra un ejemplo de la clase TAI llamada SimpleTAI, que enumera también todos los métodos disponibles de la interfaz TrustAssociationInterceptor.

package com.ibm.websphere.security.sample;

import java.util.Properties;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ibm.websphere.security.WebTrustAssociationException;
import com.ibm.websphere.security.WebTrustAssociationFailedException;
import com.ibm.wsspi.security.tai.TAIResult;
import com.ibm.wsspi.security.tai.TrustAssociationInterceptor;

public class SimpleTAI implements TrustAssociationInterceptor {
   public SimpleTAI() {
      super();
   }

/*
 * @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#isTargetInterceptor
 * (javax.servlet.http.HttpServletRequest)
 */
   public boolean isTargetInterceptor(HttpServletRequest req)
                  throws WebTrustAssociationException {
      //Añadir la lógica para determinar si se va a interceptar esta solicitud
      return true;
   }

/*
 * @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#negotiateValidateandEstablishTrust
 * (javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
 */
   public TAIResult negotiateValidateandEstablishTrust(HttpServletRequest req,
                    HttpServletResponse resp) throws WebTrustAssociationFailedException {
        // Añadir la lógica para autenticar una solicitud y devolver un resultado de TAI.
        String tai_user = "taiUser";
        return TAIResult.create(HttpServletResponse.SC_OK, tai_user);
    }

/*
 * @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#initialize(java.util.Properties)
 */
    public int initialize(Properties arg0)
                    throws WebTrustAssociationFailedException {
        return 0;
    }

/*
 * @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#getVersion()
 */
    public String getVersion() {
        return "1.0";
    }

/*
 * @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#getType()
 */
    public String getType() {
        return this.getClass().getName();
    }

/*
 * @see com.ibm.wsspi.security.tai.TrustAssociationInterceptor#cleanup()
 */
    public void cleanup()

    {}
}

Qué hacer a continuación

Añada la clase TAI al servidor de Liberty.

Utilice uno de los métodos siguientes para añadir la clase TAI al servidor de Liberty:

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_dev_custom_tai.html