인증 이벤트 Authentication Events
- 스프링 시큐리티는 인증이 실패하거나 성공하면 AuthenticationSuccessEvent, AuthenticationFailureEvent발생
- 이벤트 수신 방법 - ApplicationEventPublisher, AuthenticationEventPublisher(시큐리티)를 사용해서 발생
- DefaultAuthenticationEventPublisher - AuthenticationEventPublisher의 구현체
이벤트 발생 방법
- ApplicationEventPublisher.publishEvent(ApplicationEvent)
- AuthenticationEventPublisher.publishAuthenticationSuccess(Authentication)
- AuthenticationEventPublisher.publishAuthenticationFailure(AuthenticationException, Authentication)
이벤트 수신 방법
@EventListener 어노테이션 필요
@Component
public class AuthenticaionEvents{
@EventListener
public void onSuccess(AuthenticationSuccessEvent success){
//
}
@EventListener
public void onFailure(AuthenticationFailureEvent failure){
//
}
}
로그인 성공했을 때 event호출
.formLogin(form -> form
.successHandler(new AuthenticationSuccessHandler() {
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
applicationEventPublisher.publishEvent(new AuthenticationSuccessEvent(authentication));
}
}))
@Bean
public CustomAuthenticationProvider2 customAuthenticationProvider2(){
return new CustomAuthenticationProvider2(applicationEventPublisher(null));
}
@Bean
public DefaultAuthenticationEventPublisher applicationEventPublisher(ApplicationEventPublisher applicationEventPublisher){
DefaultAuthenticationEventPublisher authenticationEventPublisher
= new DefaultAuthenticationEventPublisher(applicationEventPublisher);
return authenticationEventPublisher;
}
'Spring > Spring Security' 카테고리의 다른 글
| Spring Security 통합 (0) | 2024.11.24 |
|---|---|
| SpringSecurity 인가 이벤트 (0) | 2024.11.15 |
| SpringSecurity 인가 아키텍쳐 - 메서드기반인가 관리자 (0) | 2024.11.10 |
| SpringSecurity RequestMatcherDelegatingAuthorizationManager (0) | 2024.11.10 |
| SpringSecurity 인가 아키텍쳐 - 요청 기반 인가 관리자 (0) | 2024.11.09 |