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.

Reemplazando datos sensibles en registros en una aplicación Quarkus.

Estoy tratando de implementar una sustitución basada en regex de datos sensibles de registro, utilizando la solución de registro predeterminada de Quarkus.

Por ejemplo, si en la información registrada aparece `secret

logs/replaced.log



{
“message”:”%replaceConverter(%message){‘$1
$2′, ‘(:password>)(?:.*)()’}”,
}

Me gustaría saber si se puede hacer algo similar si uso la solución de registro basada en JBoss predeterminada de Quarkus, o si la única opción es utilizar la extensión de Logback. Hasta ahora no he encontrado nada relacionado con la sustitución/procesamiento de mensajes de registro en la guía de registro de Quarkus. ¿Sabes si esto se puede hacer?

También estoy usando Slf4j, si eso es relevante.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    A partir de ahora, la solución de registro basada en el registro predeterminado de JBoss de Quarkus no proporciona una forma de realizar la sustitución basada en expresiones regulares de los datos de registro sensibles. La única opción disponible es utilizar la extensión Logback, como se menciona en la guía de Quarkus.

    Sin embargo, dado que mencionaste que ya estás utilizando Slf4j, aún es posible usar Logback con Slf4j. Puedes agregar la extensión Logback a tu proyecto de Quarkus y configurarlo para que utilice el mismo archivo Logback.xml que configuraste previamente para tus otras aplicaciones. De esta manera, aún puedes lograr la sustitución deseada basada en expresiones regulares de los datos de registro sensibles.

    Para usar Logback con Slf4j en Quarkus, deberás agregar las siguientes dependencias a tu archivo pom.xml:

    <dependency>
      <groupid>org.slf4j</groupid>
      <artifactid>slf4j-simple</artifactid>
    </dependency>
    <dependency>
      <groupid>io.quarkus</groupid>
      <artifactid>quarkus-logging-logback</artifactid>
    </dependency>
    

    Luego, puedes configurar Logback en el archivo logback.xml como lo hiciste anteriormente:

    <conversionrule conversionword="replaceConverter" converterclass="org.something.logger.CustomFieldCompositeConverter"></conversionrule>
      <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>logs/replaced.log</file>
        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
          <providers>
            <timestamp></timestamp>
            <loglevel></loglevel>
            <loglevelvalue></loglevelvalue>
            <loggername></loggername>
            <threadname></threadname>
            <pattern>
              <pattern>
                {
                  "message":"%replaceConverter(%message){'$1***$2', '(:password>)(?:.*)(</.*:password>)'}",
                }
              </pattern>
            </pattern>
          </providers></encoder>
      </appender>
    

    Ten en cuenta que es posible que debas ajustar las dependencias y la configuración en función de tu implementación específica.

Comments are closed.