Регистрация пользователей веб-приложения JSF.Как? - PullRequest
2 голосов
/ 06 июля 2011

Администратор веб-приложения, над которым я работаю, запрашивает «Я хочу знать все» log .Он хочет отслеживать все действия других пользователей, когда они были подключены (вошли в систему) к веб-приложению:

  • Какие страницы он / она посетил.
  • Какие действия он / онаВыполнено.
  • На каких объектах (объектах JPA) он / она выполнял действия.
  • В какое именно время он / она выполнял данное действие в случае успеха.
  • Какой атрибутданную запись он / она изменил.
  • Принципалы этого пользователя.

Все, что я мог сейчас сделать, это экспортировать файл CSV, где администратор находит принципалы пользователя , время, когда этот пользователь вошел в систему и вышел из нее.Я также создал пример таблицы history в базе данных, заполненной настройщиком EclipseLink, для отслеживания изменений в соответствующей таблице.(Проблема с этим настройщиком EclipseLink заключается в том, что он не гибкий , потому что таблицы базы данных меняются со временем (добавление / удаление атрибутов) и поэтому их соответствующиеи пользователь не хочет изменять вещи два раза (один раз в основной таблице и второй раз в таблице истории)!

Может ли что-то подобное третьей библиотеке 'log4j' сделать это?

  • Есть ли какие-либо альтернативы, решения или лучшие практики, связанные с моим выпуском!?

С уважением.

1 Ответ

2 голосов
/ 06 июля 2011

Просмотрите Interceptors / Listeners - и для JSF, чтобы получить страницу / действие, и для JPA, чтобы получить доступ к данным. В вашем перехватчике / слушателе вы можете войти в файл, используя log4j.

EclipseLink Listeners

Перехватчики Hibernate (для сравнения)

JSF Listeners

...