스프링 시큐리티 Authentication

kys95·2022년 10월 3일
0

오늘은 스프링 시큐리티를 이용한 로그인의 전체적인 과정을 알아보겠습니다.

전체과정


스프링 시큐리티를 이용한 로그인의 전체적인 과정이다.(출처 - https://springbootdev.com)

  • Http Request -> 요청
    우선 Http Request의 Method 중 post 방식으로 로그인 요청을 날린다.이때 로그인하고자 하는 사용자의 아이디(User name)와 비밀번호가 Post 방식으로 전달된다.

  • AuthenticationFilter
    AuthenticationFilter가 Post 방식으로 날라온 요청을 받고 이 필터가 아이디와 패스워드를 가지고 토큰을 만든다.
    이때 토큰을 UsernamePasswordAuthenticationToken이라고 하며, 이 토큰을 AuthenticationManager로 보내준다.

  • AuthenticationManager
    UsernamePasswordAuthenticationToken을 가지고 AuthenticationManager가 Authentication 객체를 만들기 위해 토큰을 UserDetailsService로 보내준다.

  • UserDetailsService
    UserDetailsService가 해당 아이디가 DB에 있는지의 여부를 확인해 준다.
    이때, 패스워드는 인코딩 과정을 거쳐야 하므로 스프링이 따로 관리해야 하기 때문에 AuthenticationManager가 해준다.

  • Authentication 객체
    이렇게 토큰의 두 값을 확인한 뒤 일치하면 세션에 Authentication으로 저장을 해준다.
    Authentication 객체가 들어간 순간부터 세션 속 시큐리티 컨텍스트에 값이 들어간 상태이므로 필요한 곳에서 사용할 수 있다.

profile
어제의 나보다 나은 사람이 되자

0개의 댓글