需要OWASP-ESAPI记录器帮助

时间:2014-06-25 06:48:12

标签: logging owasp esapi

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

2 个答案:

答案 0 :(得分:3)

重构你的代码以删除slf4j是一个可怕的解决方案,因为你失去了将JUL,JCL,LOG4J流量捕获到公共日志漏斗的能力。先前的回应是不好的建议。

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

  2. 另一种选择是通过ESAPI Logger接口构建SLF4J记录器代理。我认为你失去了比这种情况更多的功能。

答案 1 :(得分:0)

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

步骤1:从类路径中删除slf4j库。如果你正在使用IDE,这应该是#34; christmas-tree"您的申请并告诉您需要改变的一切。

步骤2:将esapi添加到类路径

步骤3:手动将所有slf4j日志记录调用转换为新的ESAPI对应项。您可以像这样获取对esapi记录器的引用:

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

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

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