spring 引导中的 logback 中的 OWSAP ESAPI 日志记录支持

OWSAP ESAPI logging support in logback in spring boot

spring 启动应用程序的 logback 是否支持 OWSAP ESAPI 日志记录?我做了很多研究,但在这方面找不到太多。我发现 org.owasp.esapi 现在在这个 PR 之后支持这个。但这意味着我将不得不取消 logback。有没有一种方法可以使用 logback 实现 OWSAP ESAPI 日志记录?我们正在使用 logback 提供的 slf4j 记录器。

我查看了 logback 的 maven page,自 2017 年以来没有任何主要版本。所以我猜测 logback 不支持 OWSAP ESAPI 日志记录。如果我错了,请纠正我。如果是这样的话,我可以使用其他替代方法吗?

另外根据 this spring-boot 不支持 slf4j 1.8 和 above.If 是这种情况有没有我可以使用的替代方案?

我发现 org.owasp.esap 实际上将实际日志记录委托给了我们现有的基础设施。所以我所要做的就是添加正确的包,它会通过我在 logback 中的任何配置自动处理日志记录。

添加esapi依赖pom.xml

<dependency>
        <groupId>org.owasp.esapi</groupId>
        <artifactId>esapi</artifactId>
        <version>2.2.0.0</version>
</dependency>

ESAPI.properties 文件添加到 src/main/resources/。此文件包含 ESAPI 记录器的配置属性。由于我使用的是Slf4j looger,所以我在文件中设置了ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory

现在我们可以使用 ESAPI 记录器进行记录,内部将使用 Slf4j 记录器。由于 ESAPI 记录器的函数定义有一个额外的参数,我必须相应地更新所有记录器函数。

对我来说,解决方案是:

  1. 将下一个代码添加到我的pom.xml

     <dependency>
         <groupId>org.owasp.esapi</groupId>
         <artifactId>esapi</artifactId>
         <version>2.2.0.0</version>
     </dependency>
    
  2. ESAPI.propertiesvalidation.properties 文件添加到 src/main/resources/,我从 this post, of Vaquar Khan answer.

    中获取了它们
  3. 将文件 ESAPI.properties 中的 属性 ESAPI.Logger 更新为 :

     ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory
    

希望对您有所帮助,因为在我的情况下,我必须执行一些额外的步骤才能使其正常工作。