Приемник приложения не получает уведомление о событии - PullRequest
1 голос
/ 20 мая 2011

Я работаю над приложением Spring MVC, использующим Spring Security для проверки.Я хотел бы поработать при входе в систему и видел предложение в нескольких местах (включая введите описание ссылки здесь ), чтобы добиться этого с помощью приложения Listener.Я пошел дальше и реализовал его так:

@Named
public class AccountLoginListener implements ApplicationListener<AuthenticationSuccessEvent> {

    @Inject
    AccountService accountService;

    @Override
    public void onApplicationEvent(AuthenticationSuccessEvent event) {
        Account account = (Account) event.getAuthentication().getDetails();
        ...
        accountService.saveAccount(account);
    }

}

К сожалению, AuthenticationSuccessEvent, похоже, не захватывается, и когда я отлаживаю, функция onApplicationEvent никогда не вызывается.Я не делал никаких дополнительных настроек в XML-файлах, но я не думаю, что это необходимо делать.Мне не хватает какой-то конфигурации или я что-то не так делаю?

Спасибо!

idbentley

Ответы [ 2 ]

2 голосов
/ 17 июня 2012
public class AuthenticationSuccessListener
    implements ApplicationListener<InteractiveAuthenticationSuccessEvent> {

    @Inject
    AccountService accountService;

    @Override
    public void onApplicationEvent(InteractiveAuthenticationSuccessEvent event) {
        Account account = (Account) event.getAuthentication().getDetails();
        accountService.saveAccount(account);
    }
}
2 голосов
/ 20 мая 2011

Если вы используете Spring Security 3, вы должны реализовать AuthenticationSuccessHandler, а затем настроить этот компонент в контексте вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...