Written on
·
337
0
Answer 1
0
안녕하세요, 이도원입니다 .
답변이 늦어 죄송합니다. 답변 드리지 못한 내용들은 뒤에 확인 후 답변을 올린 다는 것이, 다른 업무로 인해 자꾸 밀리게 되어 버렸습니다.
말씀하신 내용처럼 successfulAuthentication 메소드는, attemptAuthentication 메소드에서 successfulAuthentication 메소드를 직접 호출하는 것이 아니라, Spring Security의 내부 처리 과정에 의해 인증이 성공하면 호출하게 됩니다. AuthenticationFilter 클래스는 사용자로부터의 로그인 요청시, attemptAuthentication() 메소드에서 UsernamePasswordAuthenticationToken을 가지고, AuthenticationManager의 authentication()를 호출하여 Authentication Provider를 통해 인증을 처리합니다. 그리고, 인증에 성공했을 경우 Authentication 객체가 현재 스레드를 위한 SecurityContext에 저장되고, successfulAtuthentication() 메소드가 호출되는데, 이때, 로그인이 성공 후에 대한 처리를 AuthenticationSuccessHandler를 구현하여 처리할 수도 있으며, 이때는 onAuthenticationSuccess() 메소드가 호출됩니다.
https://spring.io/guides/topicals/spring-security-architecture
감사합니다.