Seguridad de la infraestructura de interfaz de usuario web: adición de validadores de solicitud

En la infraestructura de interfaz de usuario web puede configurar más de una validación para una solicitud. Este proceso de validación requiere la autenticación adicional de un usuario una vez que este usuario ha iniciado sesión. Permite al usuario continuar en una sesión.

Acerca de esta tarea

Para obtener más información, consulte la documentación de la API de Java™ en el directorio de instalación (<DIR_INSTALACIÓN> /xapidocs/core_javadocs).

Procedimiento

  1. Instale la aplicación con la implementación predeterminada de la infraestructura de interfaz de usuario web.
  2. Cree la implementación de varias validaciones, que el usuario conectará en la infraestructura de interfaz de usuario web. La infraestructura de interfaz de usuario web no tiene una implementación predeterminada de diversas validaciones. Si no se proporciona ninguna implementación, la solicitud no se valida después de la autenticación inicial.

    Las validaciones de solicitudes se realizan para cada solicitud, de modo que deberá optimizar esta característica en función de sus necesidades. La implementación de validadores de solicitudes debe utilizar el contrato definido en ISCUIRequestValidator.

  3. El método validate del validador de la solicitud devuelve la clase SCUISecurityResponse. Si la validación falla, la solicitud se direcciona al URL especificado en la clase SCUISecurityResponse. Además se incluyen valores del estado de devolución, excepción y mensaje de error. El método validate de ISCUIRequestValidator utiliza esta información en la infraestructura de interfaz de usuario web.
    La interfaz ISCUIRequestValidator define lo que la infraestructura de interfaz de usuario web espera en una implementación de validación de solicitudes. Esta interfaz utiliza los siguientes métodos:
    • validar

      Acepta SCUIContext. La respuesta es un objeto SCUISecurityResponse que encapsula el estado de devolución, el URL de la página, la excepción y el mensaje de error. Este método ejecuta la lógica empresarial que necesita la aplicación.

    • inicializar

      Maneja la inicialización.

    • sessionDestroyed

      Cierra todos los manejadores abiertos específicos de la sesión. ISCUIValidator extiende la interfaz ISCUISessionAware, una interfaz de marcador que facilita el registro de ISCUIValidator en la clase de implementación HttpSessionListener. Si la sesión queda invalidada o destruida, el escucha llama al método sessionDestroyed para cerrar los manejadores específicos de la sesión abiertos durante la inicialización.

    A continuación se muestra un ejemplo de una interfaz ISCUIRequestValidator:

    public interface ISCUIRequestValidator extends ISCUISessionAware
    { 
      public SCUISecurityResponse validate(SCUIContext uiContext);	
      public void init();
    	 public void sessionDestroyed();
    }

    La validación de la solicitud se compone de una o varias instancias de RequestValidator que implementa la clase de interfaz ISCUIRequestValidator. Se pueden establecer varios validadores de solicitudes, pero no se garantiza el orden. RequestValidator se conecta mediante el parámetro de contexto de web.xml, como se muestra en el ejemplo siguiente:

    <context-param>
      	<param-name>scui-request-validator1</param-name>	
       <param-value>com.app.MyURLValidator</param-value>
    </context-param>
    <context-param> 
      	<param-name>scui-request-validator2</param-name> 
      	<param-value>com.app.MyAdminValidator</param-value>
    </context-param>

    Se llama a todas las implementaciones de validación o validadores dados en el parámetro de contexto en web.xml (sin un orden específico) para dar soporte a validación adicional.

  4. Para implementar el código Java personalizado, cree un archivo JAR que contenga la clase Java y, a continuación, instale el archivo JAR utilizando el script install3rdparty.sh . Para implementar esta personalización, vuelva a crear el archivo EAR o WAR como lo hizo durante la instalación y, a continuación, despliegue la aplicación en Applications Manager.