diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/listener/AuthenticationFailureListener.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/listener/AuthenticationFailureListener.java deleted file mode 100644 index beef41e..0000000 --- a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/listener/AuthenticationFailureListener.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.shyshkin.study.fullstack.supportportal.backend.listener; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import net.shyshkin.study.fullstack.supportportal.backend.service.LoginAttemptService; -import org.springframework.context.ApplicationListener; -import org.springframework.security.authentication.event.AuthenticationFailureBadCredentialsEvent; -import org.springframework.stereotype.Component; - -@Slf4j -@Component -@RequiredArgsConstructor -public class AuthenticationFailureListener implements ApplicationListener { - - private final LoginAttemptService loginAttemptService; - - @Override - public void onApplicationEvent(AuthenticationFailureBadCredentialsEvent event) { - String username = event.getAuthentication().getPrincipal().toString(); - log.debug("{} failed to login", username); - loginAttemptService.loginFailed(username); - } -} diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/listener/AuthenticationSuccessListener.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/listener/BruteForceDetectionListeners.java similarity index 60% rename from support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/listener/AuthenticationSuccessListener.java rename to support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/listener/BruteForceDetectionListeners.java index bfe44b3..d9c1242 100644 --- a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/listener/AuthenticationSuccessListener.java +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/listener/BruteForceDetectionListeners.java @@ -3,7 +3,8 @@ package net.shyshkin.study.fullstack.supportportal.backend.listener; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.shyshkin.study.fullstack.supportportal.backend.service.LoginAttemptService; -import org.springframework.context.ApplicationListener; +import org.springframework.context.event.EventListener; +import org.springframework.security.authentication.event.AuthenticationFailureBadCredentialsEvent; import org.springframework.security.authentication.event.AuthenticationSuccessEvent; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Component; @@ -11,12 +12,19 @@ import org.springframework.stereotype.Component; @Slf4j @Component @RequiredArgsConstructor -public class AuthenticationSuccessListener implements ApplicationListener { +public class BruteForceDetectionListeners { private final LoginAttemptService loginAttemptService; - @Override - public void onApplicationEvent(AuthenticationSuccessEvent event) { + @EventListener + public void onLoginFailure(AuthenticationFailureBadCredentialsEvent event) { + String username = event.getAuthentication().getPrincipal().toString(); + log.debug("{} failed to login", username); + loginAttemptService.loginFailed(username); + } + + @EventListener + public void onLoginSuccess(AuthenticationSuccessEvent event) { Object principal = event.getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { String username = ((UserDetails) principal).getUsername();