需要 OWASP-ESAPI 记录器帮助

Ami*_*mit 6 logging owasp esapi

在我当前的项目中,我使用 Maven 和 Spring。我目前正在使用 SLF4J 记录器进行日志记录服务。取而代之的是,我想使用 OWASP-ESAPI 记录器。我不想使用OWASP-ESAPI安全性,只想使用日志服务。任何人都可以指导我如何OWASP-ESAPI通过以最小的努力替换 slf4j 记录器来使用记录器吗?我尝试了很多谷歌搜索,但没有任何帮助。我会非常感谢一些链接来获取有关OWASP-ESAPI记录器的知识。

小智 5

重构您的代码以删除 slf4j 是一个可怕的解决方案,因为这样您就无法将 JUL、JCL、LOG4J 流量捕获到公共日志漏斗中。先前的回应是不好的建议。

  1. 您可以启用 ESAPI 以使用 JUL 日志记录,然后通过在 SLF4J 上使用 JUL,重新捕获该日志流量并路由到其他记录器(即 log4j 或 logback)。为此,在 ESAPI.properties 中: ESAPI.Logger=org.owasp.esapi.reference.JavaLogFactory

  2. 另一种选择是通过 ESAPI 记录器接口构建 SLF4J 记录器代理。我认为在这种情况下,您失去的功能多于获得的功能。


avg*_*tvs 1

需要注意的关键是 ESAPI 仅为 log4j 或 commons java.util 日志记录而构建。我假设是log4j。

步骤 1:从类路径中删除 slf4j 库。如果您使用的是 IDE,这应该是您的应用程序的“圣诞树”,并告诉您必须更改的所有内容。

第2步:将esapi添加到类路径中

步骤 3:手动将所有 slf4j 日志记录调用转换为其新的 ESAPI 对应项。您将获取对 esapi 记录器的引用,如下所示:

Logger logger = ESAPI.getLogger("my.foo.class.Foo");

根据所提供的信息,这非常简单。

注意:Log4j 不支持 slfj 支持的某些格式化调用。这将导致您手动重新创建输入或将所有这些实例推迟到稍后,然后仍然使用 slf4j 但仅使用 来[MessageFormatter][1]传递日志输入。