Я использую Spring Security 3.2.5.RELEASE, и у меня возникают трудности с поиском неудачных попыток входа в систему. Я в настоящее время имеют ApplicationListener
настроен следующим образом:Spring Security не обнаруживает ошибки входа в ApplicationListener
@Component
public class MyApplicationListener implements ApplicationListener<AbstractAuthenticationEvent> {
private static Logger logger = LogManager.getLogger(MyApplicationListener);
@Override
public void onApplicationEvent(AbstractAuthenticationEvent abstractAuthenticationEvent) {
if (abstractAuthenticationEvent instanceof AbstractAuthenticationFailureEvent) {
logger.warn("Detected an invalid login");
} else if (abstractAuthenticationEvent instanceof AuthenticationSuccessEvent) {
logger.info("A user logged in successfully");
}
}
}
Если пользователь входит в систему успешно, я могу увидеть сообщение об успехе, как и ожидалось. Однако, если пользователь поставляет плохой пароль и т. Д. Сообщение об ошибке никогда не отображается.
Я изменил слушателя так он записывает все ApplicationEvent
, как показано ниже:
@Component
public class MyApplicationListener implements ApplicationListener<ApplicationEvent> {
private static Logger logger = LogManager.getLogger(MyApplicationListener);
@Override
public void onApplicationEvent(ApplicationEvent applicationEvent) {
logger.info("Got an event of type {}", applicationEvent.getClass());
}
}
Однако только события, связанные с безопасностью, которые авторизованы имеют тип org.springframework.security.authentication.event.InteractiveAuthenticationSuccessEvent
. Ошибка входа в систему не вызывает никаких событий. Я был бы признателен за любые указания, спасибо.