본문 바로가기
Spring Security

기본 API & Filter 이해 (2) - UsernamePasswordAuthenticationFilter

by asdft 2024. 2. 2.

인증 API - Login Form 인증

 

UsernamePasswordAuthenticationFilter : Login Form 인증 처리를 하는 filter.

 

1. 사용자가 인증을 시도하면 UsernamePassWordAuthenticationFilter가 이를 처리

2. AntPathRequestMathcher

: 사용자가 요청한 요청정보의 URL이 맞는지 확인

(http.loginProcessingUrl( )로 변경 가능. 디폴트 주소 값은 "/login")

3. Authentication 

: Authentication 객체를 만들어서, 사용자가 로그인 시 입력한 Username과 Password를 저장

4. AuthenticationManager

: 인증 관리자. 위에서 만들어진 인증 객체를 전달받고 인증 처리를 하게됨.

   AuthenticationProvider : 실질적으로 인증 처리를 담당하는 클래스.

  인증에 실패할 경우, AuthenticationException을 발생시킴.

  인증에 성공할 경우, 권한정보(Authorities), User 객체 등의 정보가 담긴 인증 객체를 생성하여 반환.

5. Security Context

: 인증 객체를 저장&보관하는 저장 장소. 저장된 인증 객체는 전역적으로 참조할 수 있음.

  위에서 만들어진 최종적인 권한정보, User객체가 담긴 Authentication 인증 객체를 받아와서

  Security Context에 저장. 이후 Success Handler를 통해 다음 과정 수행.