Spring Framework логгирование входа и выхода пользователей

В SpringFramework есть интерфейс org.springframework.context.ApplicationListener . С помощью реализаций этого интерфейса можно обрабатывать различные события приложения. Для этого нужно зарегистрировать бин с классом, реализующим этот интерфейс ApplicationListener, и Spring Framework будет сам вызывать его при возникновении событий. Для регистрации бина можно использовать любой способ: в XML-файле через тег <bean>, через аннотацию @Component  и сканирование компонентов, через Java-конфигурацию. Интересующее событие указывается в generic-параметре.

Например, можно обрабатывать успешный вход и выход пользователей в Spring Security. Для этого используются события org.springframework.security.authentication.event.AuthenticationSuccessEvent и org.springframework.security.core.session.SessionDestroyedEvent.

Пример обработчика события успешного входа пользователя в систему:

Пример обработчика события завершения сессии пользователя (выхода пользователя):

Чтобы событие уничтожения сессии SessionDestroyedEvent  работало, нужно также добавить в web.xml  ещё один listener:

Вставьте его сразу после ContextLoaderListener.

При этом можно не только записывать в лог, но и выполнять любые другие необходимые действия: отправка почты, вычисление рабочего времени и т. д.

Spring Framework логгирование входа и выхода пользователей: 2 комментария

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *