Authentication

Authentication

 

  • 유저의 정보를 가지고 인증을 하는 클래스이다.
  • 로그인 정보를 POST 시 해당 내용을 UsernamePasswordAuthenticationFilter가 인증처리를 시작함. 
  • UsernamePasswordAuthenticationFilter 유저의 정보를 UsernamePasswordAuthenticationToken에 담은 객체를 만듬.
  • 만들어진 Token을 AuthenticationManager 에게 인증을 위임함. 
  • AuthenticationManager 는 자신이 가지고 있는 provider에게 객체를 넘기면서 인증요청을 함.
  • 인증이 되었다면 인증이 된  토큰을 다시 생성하여  provider가 AuthenticationManager 에게 반환함. 
  • AuthenticationManager 는 UsernamePasswordAuthenticationFilter에게 인증된 토큰을 넘겨줌.
  • 마지막으로 그 토큰을 SecurityContext에 저장하게 함으로써, 서버 전체에서 해당 인증객체를 사용할 수 있게 됨. 

Authentication 구조 

 

  • principal : 사용자 아이디 혹은 User객체를 저장
  • credentials : 사용자 비밀번호
  • authorities : 인증된 사용자의 권한 목록
  • details : 인증 부가 정보
  • Authenticated : 인증 여부 (true or false)