es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Configuración de OWASP ESAPI y SLF4J/Logback

Actualmente tengo un programa que utiliza SLF4J/LoggerFactory para capturar registros y la configuración se realiza a través de logback.xml. Mis registros funcionaban como se esperaba. Recientemente, el equipo de Seguridad en mi trabajo me instruyó actualizar una clase que utiliza ESAPI. Actualicé la clase y agregué ESAPI.properties y validation.properties a src/main/resources/esapi. En ESAPI.properties, actualicé ESAPI.Logger a ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory. Basado en mi investigación en línea y a través de SO, asumí que podría utilizar mis registros (que se inicializan como protected final static Logger log = LoggerFactory.getLogger(this.class); y se usan como log.info("Ejemplo")) como de costumbre (imprime los registros en un archivo en un servidor), pero los registros solo se imprimen en la línea de comandos cuando se ejecuta el programa en Java.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que has actualizado correctamente tu clase para usar ESAPI, pero tus registros ya no se están almacenando en el archivo como se esperaba. Según lo que has descrito, parece que ESAPI puede estar entrando en conflicto con la configuración de tu SLF4J/LoggerFactory.

    Una posible solución a este problema es configurar ESAPI para que use la misma implementación de registro subyacente que SLF4J/LoggerFactory. Para hacer esto, puedes modificar tu archivo ESAPI.properties e incluir la siguiente línea:

    ESAPI.Log4J.Logger=org.slf4j.impl.Log4jLoggerAdapter
    

    Esto le indicará a ESAPI que use la implementación de Log4j proporcionada por SLF4J/LoggerFactory, lo que permitirá que tus registros se almacenen en el archivo según lo esperado.

    Alternativamente, podrías intentar usar una implementación de registro diferente que sea compatible tanto con SLF4J/LoggerFactory como con ESAPI, como Log4j o Logback. Esto implicaría actualizar tus dependencias y configuración en consecuencia.

    En general, es importante asegurarse de que la implementación de registro sea consistente y compatible en todas las partes de tu código para evitar problemas como este.

Comments are closed.