728x90
커스텀 예외 & 이벤트 추가
@Bean
public AuthenticationEventPublisher customAuthenticationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
Map<Class<? extends AuthenticationException>, Class<? extends AbstractAuthenticationFailureEvent>> mapping =
Collections.singletonMap(CustomException.class, CustomAuthenticationFailureEvent.class);
DefaultAuthenticationEventPublisher authenticationEventPublisher = new DefaultAuthenticationEventPublisher(applicationEventPublisher);
authenticationEventPublisher.setAdditionalExceptionMappings(mapping); // CustomException 을 던지면 CustomAuthenticationFailureEvent 를 발행하도록 추가
return authenticationEventPublisher;
}
authenticationEventPublisher.publishAuthenticationFailure(new CustomException("CustomException "), authentication);
@EventListener
public void onFailure(CustomAuthenticationFailureEvent failures) { // 커스텀 예외에 대해 이벤트를 수신 가능
System.out.println(" failures = " + failures.getException().getMessage());
}
기본 이벤트 설정
- AuthenticationException 이 발생했을 때 해당 예외에 매핑 된 이벤트가 발행이 안되어 있을 경우 기본 AuthenticationFailureEvent 를 발행 및 수신 가능
@Bean
public AuthenticationEventPublisher defaulAuthenticationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
DefaultAuthenticationEventPublisher authenticationEventPublisher = new DefaultAuthenticationEventPublisher(applicationEventPublisher);
authenticationEventPublisher.setDefaultAuthenticationFailureEvent(CustomDefaultAuthenticationFailureEvent.class); // 기본 이벤트 설정
return authenticationEventPublisher;
}
eventPublisher.publishAuthenticationFailure(new CustomAuthenticationException("CustomAuthenticationException"), authentication);
@EventListener
public void onSuccess(CustomAuthenticationFailureEvent failures) {// 모든 AuthenticationException 예외에 대해 이벤트를 수신 가능
System.out.println(" failures = " + failures.getException().getMessage());
}
CustomAuthenticationException에 발행된 이벤트가 없으나 기본 이벤트인 CustomAuthenticationFailureEvent를 수신
728x90
'Language > Spring Security' 카테고리의 다른 글
| Servlet API 통합 - SecurityContextHoladerAwareRequestFilter (0) | 2024.08.03 |
|---|---|
| 인가 이벤트 - Authorization Events (0) | 2024.08.03 |
| 인증 이벤트 - Authentication Events (0) | 2024.08.02 |
| AOP 메서드 보안 구현 - MethodInterceptor, Pointcut, Advisor (0) | 2024.08.02 |
| 포인트 컷 메서드 보안 구현 - AspectJExpressionPointcut / ComposablePointcout (0) | 2024.08.02 |