Как реализовать Log4j-аудит в веб-приложении Java / GWT - PullRequest
0 голосов
/ 26 марта 2020

В настоящее время работает над реализацией ведения журнала аудита для веб-приложения и хотел бы использовать log4j-аудит. Приложение написано с использованием OpenJDK 8 и GWT 2.7, размещено на Jboss 6.4 и построено с использованием Ant 1.10.5. Мой вопрос заключается в том, как внедрить каркас log4j-Audit в нашу текущую структуру? Я работал с разделом Getting Started и полностью прочитал документацию, но из-за недостатка опыта в Maven его трудно перенести в наш стек.

В настоящее время я понимаю, что мне нужно создать фильтр запросов, который создает экземпляр объекта RequestContext, который хранит переменные в карте ThreadContext. Мне нужно знать, как использовать мой catalog.json для генерации интерфейсов, на которые я могу ссылаться в своем коде.

Спасибо!

РЕДАКТИРОВАТЬ:

Благодаря информации в разделе 1. отмеченного ответа ниже я смог создать пользовательский муравей задача, с POM, подобной той, что была в примере приложения, которая создает aud-service-api.jar и ссылается на сгенерированные источники в моей кодовой базе.

1 Ответ

0 голосов
/ 27 марта 2020

RequestContextFilter является расширением LogConj ThreadContext, который позволяет преобразовывать заголовки, передаваемые в запросах REST, в атрибуты ThreadContext. Это важно для аудита, чтобы вы могли передать логин, IP-адрес, номер учетной записи пользователя и т. Д. c, чтобы они могли быть включены во все события аудита (а также во все другие журналы). Хотя это не обязательно важно для ведения журнала аудита, в том числе requestId и "sessionId" важны для диагностики c и журналов отладки для сопоставления журналов между службами и серверами.

Файл каталога. json используется для определения событий и атрибутов аудита. Обычно вы создаете проект, похожий на log4j-audit-sample . Этот проект содержит 3 вещи:

  1. API службы аудита - каталог. json находится в src / main / resources и содержит определения ваших событий и атрибутов. Когда вы запустите «mvn clean package», «mvn clean install» или «mvn clean deploy» в этом проекте, он прочитает каталог и сгенерирует все интерфейсы Java для определенных вами событий. Затем вы должны включить jar, созданный из этого проекта, в свои приложения вместе с jar log4j-audit-api для регистрации событий.
  2. Служба аудита - служба REST, которую можно использовать для регистрации событий из не- Java приложений. Служба будет проверять события по вашему каталогу.

Log4j-Audit поставляется с приложением Spring Boot, которое можно использовать в качестве редактора для каталога, так как редактирование JSON может быть утомительным и подверженным ошибкам , Тем не менее, приложение Spring Boot должно запускаться как однопользовательское настольное приложение, что немного странно, так что настольный редактор на базе Electron JS разрабатывается .

Log4j-Audit в настоящее время поддерживает два формата для каталога; файл каталога. json, хранящийся в git или каталог RDMS, доступ к которому осуществляется через JPA. Обычно каталог, хранящийся в git, используется для генерации интерфейсов Java, потому что они должны изменяться только в обычном процессе разработки, и вы захотите управлять этими определениями с нормальным циклом выпуска. Редактор каталога Spring Boot считывает каталог json из git и затем загружает его в базу данных в памяти, чтобы редактор мог воспользоваться ссылочной целостностью, которую обеспечивает база данных. Служба аудита может быть настроена на использование базы данных для хранения «динамического c каталога». Для этих записей каталога отсутствуют интерфейсы Java, и приложения, которые хотят выполнять аудит с использованием этих определений событий, должны делать это через службу аудита.

Надеемся, что она предоставляет информацию, которую вы ищете, но если вы выполнили шаги на странице Начало работы и посмотрите пример приложения, вы должны иметь представление о том, что вам нужно сделать. Если нет, ответьте на дополнительные вопросы.

...