如何在Java/GWT web应用程序中实现Log4j审计



目前正在为web应用程序实现审计日志记录,并希望使用log4j审计。该应用程序使用Jboss 6.4托管的OpenJDK 8和GWT 2.7编写,并使用Ant 1.10.5构建。我的问题是,如何在我们当前的结构中实现log4j审计框架?我已经完成了入门部分,并详尽地阅读了文档,但由于缺乏Maven经验,很难将其传输到我们的堆栈中。

我目前的理解是,我需要创建一个请求过滤器来实例化RequestContext对象,该对象将变量存储在ThreadContext映射中。我需要知道的是如何使用我的catalog.json来生成可以在代码中引用的接口。

谢谢!

编辑:

由于下面标记答案的1.部分中的信息,我能够创建一个自定义Ant任务,使用与示例应用程序中类似的POM,构建audit-service-api.jar并引用我的代码库中生成的源代码。

RequestContextFilter是Log4j ThreadContext的扩展,它允许您将REST请求中传递的头转换为ThreadContext属性。这对于审核非常重要,这样您就可以传递用户的loginId、IP地址、帐号等,以便将它们包含在所有审核事件(以及所有其他日志(中。尽管对于审计日志记录不一定很重要,但包括requestId和"sessionId"对于诊断和调试日志在服务和服务器之间关联日志很重要。

catalog.json文件用于定义审核事件和属性。通常,您会创建一个类似于log4j审计示例的项目。这个项目包含3件事:

  1. 审计服务API-catalog.json将驻留在src/main/resources中,并包含事件和属性的定义。当您在此项目上运行"mvn-clean-package"、"mvn-clear-install"或"mvn-clean-deploy"时,它将读取目录并为您定义的事件生成所有Java接口。然后,您将在应用程序中包括由该项目构建的jar,以及用于记录事件的log4j审计api jar
  2. 审计服务-一种REST服务,可用于记录来自非Java应用程序的事件。该服务将根据您的目录验证事件

Log4j审计附带了一个Spring Boot应用程序,该应用程序可以用作目录的编辑器,因为编辑JSON可能很乏味,而且容易出错。也就是说,Spring Boot应用程序需要作为单用户桌面应用程序运行,这有点奇怪,因此正在开发基于ElectronJS的桌面编辑器。

Log4j审计目前支持两种目录格式;存储在git中的catalog.json文件或通过JPA访问的RDMS目录。通常,存储在git中的目录用于生成Java接口,因为这些接口只能在正常的开发过程中正常修改,并且您希望用正常的发布周期来管理这些定义。Spring Boot目录编辑器从git读取json目录,然后将其加载到内存中的数据库中,这样编辑器就可以利用数据库提供的引用完整性。审核服务可以配置为使用数据库来存储"动态目录"。这些目录条目没有可用的Java接口,想要使用这些事件定义执行审核的应用程序必须通过审核服务来执行。

希望这能提供你想要的信息,但如果你执行了"入门"页面中的步骤并查看了示例应用程序,你应该知道你需要做什么。如果没有,请回答更多问题。

相关内容

  • 没有找到相关文章

最新更新