Backend 개발/Spring Security 6

Spring Security 6 폼(Form) 인증 필터(UsernamePasswordAuthenticationFilter)

수달리즘 2025. 5. 21. 11:05
반응형

UsernamePasswordAuthenticationFilter 란?

  • UsernamePasswordAuthenticationFilter 는 AbstractAuthenticationProcessginFilter 를 상속받고 있으며 AbstractAuthenticationProcessginFilter 는 스프링 시큐리티가 인증 기본 필터로 사용한다.
  • 클라이언트로부터 넘어온 HttpServletRequest에 담긴 id(사용자 이름), 비밀번호를 이용하여 폼 인증을 수행

※ UsernamePasswordAuthenticationFilter 말고 커스텀하게 필터를 만들고 싶다면 AbstractAuthenticationProcessginFilter 를 상속받고 attemptAuthentication 메소드를 override하면 된다.

폼 인증 처리 과정

 

1. client로부터 요청이 온다.

2. 해당 요청이 인증이 필요한지 여부를 판단

  • RequestMatcher 에는 기본적으로 ‘login’ 정보가 저장되어 있다. 만약 클라이언트에서 ‘login’이 아닌 ‘loginProcess’와 같은 정보를 넘기면 false를 반환

3. UsernamePasswordAuthenticationToken 클래스를 통해 username+password 정보 기반으로 토큰을 생성한다. (username, password 정보 저장)

4. 3번에서 만들어진 토큰을 가지고 AuthenticationManager 인증 처리 수행

5. 인증 성공 시, 인증된 UserDetatils + Authorities 정보를 가지는 새로운 UsernamePasswordAuthenticationToken 을 만든다.

※ 인증 실패 이후 처리, 인증 성공 이후 처리 과정은 이후에 더 자세히 다룰 것이다.

728x90
반응형