Написание аспектов для перехвата имен пользователей после успешного входа и выхода из системы (Spring Security 3.0.X) - PullRequest
0 голосов
/ 28 марта 2011

Я пишу пару аспектов.Первый - перехватывать имена пользователей, когда пользователи успешно проходят аутентификацию в моем веб-приложении, а второй - перехватывать, когда они явно выходят из системы.У меня возникают проблемы с поиском методов Spring Framework, которые вызываются только один раз и поэтому позволяют мне собирать эту информацию.

Мы используем базовую конфигурацию Spring Security 3.0, единственное добавление которой заключается в предоставлении нашей собственной UserDetailsService.реализация.

Может кто-нибудь помочь?

1 Ответ

1 голос
/ 30 марта 2011

Оказывается, это был совершенно неправильный способ сделать это.В Spring есть набор встроенных классов ApplicationEvent, которые вы можете создавать для отслеживания ApplicationListeners.Как ни странно, "LogoutEvent", похоже, нет, но есть очень полезные AuthenticationSuccessEvent, AbstractAuthenticationFailureEvent, HttpSessionCreationEvent и HttpSessionDestroyedEvent.Наиболее интересным является RequestHandledEvent.

Чтобы поймать их, я создал свой собственный компонент, который реализовал

org.springframework.context.ApplicationListener;

и переопределил

public void onApplicationEvent(ApplicationEvent appEvent)

В этом я просто, если /Еще я могу просмотреть различные типы appEvent и предпринять соответствующие действия для отслеживания пользователей и сеансов.

...