Аудит настраивается при помощи сущностей LoggedEntity
и LoggedAttribute
(соответствующих таблицам SEC_LOGGED_ENTITY и SEC_LOGGED_ATTR).
LoggedEntity
описывает тип сущности, изменения которой необходимо журналировать. Атрибуты LoggedEntity
:
-
name
(колонка NAME) - тип сущности в виде имени мета-класса, например,sales$Customer
. -
auto
(колонка AUTO) - нужно ли журналировать изменения при вызовеEntityLogAPI
с параметромauto = true
(т.е. из Entity Listeners). -
manual
(колонка MANUAL) - нужно ли журналировать изменения при вызовеEntityLogAPI
с параметромauto = false
.
LoggedAttribute
описывает журналируемый атрибут сущности и содержит ссылку на LoggedEntity
и имя атрибута.
Для настройки журналирования некоторой сущности достаточно внести соответствующие записи в таблицы SEC_LOGGED_ENTITY и SEC_LOGGED_ATTR. Например, для ведения журнала изменений атрибутов name
и grade
сущности Customer
, необходимо выполнить:
insert into SEC_LOGGED_ENTITY (ID, CREATE_TS, CREATED_BY, NAME, AUTO, MANUAL) values ('25eeb644-e609-11e1-9ada-3860770d7eaf', now(), 'admin', 'sales$Customer', true, true); insert into SEC_LOGGED_ATTR (ID, CREATE_TS, CREATED_BY, ENTITY_ID, NAME) values (newid(), now(), 'admin', '25eeb644-e609-11e1-9ada-3860770d7eaf', 'name'); insert into SEC_LOGGED_ATTR (ID, CREATE_TS, CREATED_BY, ENTITY_ID, NAME) values (newid(), now(), 'admin', '25eeb644-e609-11e1-9ada-3860770d7eaf', 'grade');
Для активации механизма журналирования необходимо установить в true
атрибут Enabled
JMX-бина app-core.cuba:type=EntityLog
. Для вступления в силу изменений настройки журналирования, произведенных во время работы приложения, необходимо перезапустить
сервер или вызвать метод invalidateCache()
этого же бина.