Auditoría

La auditoría es un módulo central que puede ser habilitado configurando la siguiente propiedad:

ipf.business-operations.audit.enabled = true

Para auditar un método, usted necesita añadir el @Auditable anotación a la firma del método. La anotación toma un parámetro llamado type que indica la acción que usted está auditando.

Ejemplo:

@GetMapping("auth/basic")
@Auditable(type = "LOGIN_BASIC")
public void loginBasic() {}

Un registro de auditoría consiste en los siguientes campos de datos:

public class AuditRecord {
    @Id
    String id;
    String userId;
    String clientIpAddress;
    String processingEntity;
    String transactionId;
    String action;
    Instant time;
    Map<String, Object> request;
    Map<String, Object> response;
}

Para poder poblar el mapa de solicitud y respuesta, usted necesita implementar un AuditRequestExtractor y AuditResponseExtractor respectivamente:

import java.util.Map;
import java.util.Set;

/**
 * This class can be extended to implement a custom request extractor for a particular
 * type of audited method.
 */
public interface AuditRequestExtractor {
    /**
     * Return the extractor type that should match the corresponding
     * @Auditable types
     *
     * @return The types of extractor
     */
    Set<String> types();

    /**
     * Here you can extract the fields from the request parameters
     * you would like to be audited
     *
     * @param args The method arguments from the annotated method
     * @return A map representing the key value params extracted from the request method arguments
     */
    Map<String, Object> extractRequestData(Object[] args);
}
import java.util.Map;
import java.util.Set;

/**
 * This class can be extended to implement a custom response extractor for a particular
 * type of audited method.
 */
public interface AuditResponseExtractor {
    /**
     * Return the extractor type that should match the corresponding
     * @Auditable types
     *
     * @return The type of extractor
     */
    Set<String> types();

    /**
     * Here you can extract the fields from the response message
     * you would like to be audited
     *
     * @param responseData The response data from the annotated method
     * @return A map representing the key value params extracted from the response
     */
    Map<String, Object> extractResponseData(Object responseData);
}

El tipo del extractor debe coincidir con el tipo @Auditable anotado para que sepamos qué extractor utilizar para el método auditado. Se pueden definir múltiples extractores para cubrir todos los tipos auditados. Por defecto, no se extraen campos a menos que usted implemente un custom extractor.

Tipos Personalizados

A veces no es posible utilizar la anotación para cosas como SAML/OAUTH que requieren un procesamiento especial. En estos tipos de casos, es posible registrar custom tipos de acción que luego aparecerán como tipos de acción en la interfaz de usuario para fines de filtrado. Para hacer esto, registre un bean de tipo CustomAuditable que devuelve un conjunto de cadenas que representan los tipos de acción.

Ejemplo:

@Bean
public CustomAuditable getCustomAuthAuditables(SamlProperties samlProperties, OAuthProperties oAuthProperties) {
    return new CustomAuditable() {
        @Override
        public Set<String> actionTypes() {
            Set<String> actionTypes = new HashSet<>();
            if(samlProperties.isEnabled()) {
                actionTypes.add("SAML_LOGIN_SUCCESS");
                actionTypes.add("SAML_LOGIN_FAILURE");
            }
            if(oAuthProperties.isEnabled()) {
                actionTypes.add("OAUTH_LOGIN_SUCCESS");
                actionTypes.add("OAUTH_LOGIN_FAILURE");
            }
            return actionTypes;
        }
    };
}

Tipos de acción auditados incorporados

El módulo de auditoría se entrega con un conjunto predefinido de constantes de tipo de acción. Estas están destinadas a ser referenciadas por el @Auditable(type =..) anotación y extractores de solicitud/respuesta.

Puede utilizar cualquiera de estos valores en sus controladores/servicios; se mostrarán como tipos de acción en la interfaz de usuario de Auditoría.

Aprobaciones

  • APROBAR_CONFIGURACIÓN_DEL_AGENTE

  • APROBAR_CONFIGURACIONES_DE_LIMPIEZA_DE_AGENTE

  • APROBAR_CS_AGENT_SELECTION_SETTINGS

  • APROBAR_CONFIGURACIONES_DE_ACUERDO_DEL_AGENTE

  • APROBAR_CONFIGURACIONES_DE_PROCESAMIENTO_GENERALES

  • ENTIDAD_DE_APROBACIÓN_DE_PROCESAMIENTO

  • APROBAR_REGLA_DE_FILTRADO_BANCARIO

  • APPROVE_HTM_TASK

Asignar/Ejecutar/Rechazar HTM tareas

  • ASSIGN_HTM_TASK

  • EJECUTAR_TAREA_HTM

  • EJECUTAR_TAREAS_BULK_HTM

  • RECHAZAR_TAREA_HTM

Crear acciones

  • CREAR_CONFIGURACIÓN_DE_AGENTE

  • CREAR_CONFIGURACIONES_DE_LIMPIEZA_DE_AGENTE

  • CREATE_CS_AGENT_SELECTION_SETTINGS

  • CREAR_CONFIGURACIÓN_DE_ACUERDO_DE_AGENTE

  • CREAR_CONFIGURACIONES_DE_PROCESAMIENTO_GENERALES

  • CREAR_ENTIDAD_DE_PROCESAMIENTO

  • CREAR_REGLA_DE_FILTRADO_BANCARIO

Modificar acciones

  • MODIFICAR_CONFIGURACIÓN_DEL_AGENTE

  • MODIFICAR_AGENTE_AJUSTES_DE_LIQUIDACIÓN

  • MODIFICAR_CS_AGENT_SELECTION_SETTINGS

  • MODIFICAR_CONFIGURACIONES_DE_ASENTAMIENTO_DE_AGENTE

  • MODIFICAR_CONFIGURACIONES_DE_PROCESAMIENTO_GENÉRICO

  • MODIFICAR_ENTIDAD_DE_PROCESAMIENTO

  • MODIFICAR_REGLA_DE_FILTRADO_DE_BANCO

Rechazar acciones

  • RECHAZAR_CONFIGURACIÓN_DEL_AGENTE

  • RECHAZAR_AGENTE_CONFIGURACIÓN_DE_LIMPIEZA

  • RECHAZAR_CONFIGURACIÓN_DE_SELECCIÓN_DE_AGENTE_CS

  • RECHAZAR_CONFIGURACIONES_DE_ACUERDO_DEL_AGENTE

  • RECHAZAR_CONFIGURACIONES_DE_PROCESAMIENTO_GENERICAS

  • RECHAZAR_ENTIDAD_DE_PROCESAMIENTO

  • RECHAZAR_REGLA_DE_FILTRADO_DE_BANCO

Acciones de eliminación

  • ELIMINAR_CONFIGURACIÓN_DEL_AGENTE

  • ELIMINAR_CONFIGURACIONES_DE_LIMPIEZA_DE_AGENTE

  • ELIMINAR_CONFIGURACIÓN_DE_SELECCIÓN_DE_AGENTE_CS

  • ELIMINAR_CONFIGURACIONES_DE_ACUERDO_DEL_AGENTE

  • ELIMINAR_CONFIGURACIONES_DE_PROCESAMIENTO_GENERICAS

  • ELIMINAR_ENTIDAD_DE_PROCESAMIENTO

  • ELIMINAR_REGLA_DE_FILTRADO_DE_BANCO

Tipos de acceso denegado a la respuesta

Estos se registran cuando se deniega una respuesta para el área de dominio dada.

  • ACCESO_DENEGADO_A_LA_RESPUESTA_DE_CONFIGURACIÓN_DEL_AGENTE

  • AGENTE_CONFIGURACIÓN_DE_LIMPIEZA_RESPUESTA_ACCESO_DENEGADO

  • CS_AGENT_SELECTION_SETTINGS_RESPONSE_ACCESO_DENEGADO

  • ACCESO_DENEGADO_A_LA_RESPUESTA_DE_CONFIGURACIÓN_DE_ASENTAMIENTO_DEL_AGENTE

  • ACCESO_DENEGADO_A_LA_RESPUESTA_DE_CONFIGURACIÓN_DE_PROCESAMIENTO_GENÉRICO

  • ACCESO_DENEGADO_HTM_RESPUESTA

  • ODS_RESUMEN_RESPUESTA_ACCESO_DENEGADO

  • ACCESO_DENEGADO_A_LA_RESPUESTA_DE_LA_ENTIDAD_DE_PROCESAMIENTO

  • BANK_FILTERING_RESPONSE_ACCESS_DENIED

Otras acciones

  • EXPORTAR_RESUMENES_DE_PAGO

  • CANCELAR_SOLICITUD_DE_PAGO

  • LOGIN_BÁSICO

  • DEFAULT

Si necesita acciones no cubiertas anteriormente (por ejemplo, inicios de sesión SAML/OAUTH), defínalas a través de un CustomAuditable bean como se describió anteriormente. Aparecerán como tipos de acción adicionales en la interfaz de usuario. Al agregar nuevas acciones auditadas en el código, prefiera importar y hacer referencia a las constantes de AuditableType para mantener la taxonomía consistente.