JWT OAUTH API 흐름
-
JwtAuthenticationToken: Security의 UsernamePasswordAuthenticationToken을 대체한다. 생성자는 두개로 각각 미인증, 인증 토큰을 생성하며 인증성공 시 SecurityContextHolder에 들어가는 객체
-
JwtAuthenticationFilter: 헤더에 담긴 토큰값을 가져오고 토큰이 있으면 getAuthentication(token)을 호출하여 미인증 JwtAuthenticationToken을 생성하고 JwtProvider의 authenticate(token)에 넘겨주고 검증한다.
검증 성공시 SecurityContextHolder에 인증정보를 저장한다. 검증 실패 시 토큰의 상태 별 오류를 반환한다. -
JwtAuthenticationProvider: Filter로부터 넘어온 token을 검증하고 인증된 JwtAuthenticationToken을 생성하여 반환한다.
-
JwtTokenizer: Jwt 생성, 파싱 하는 역할을 하는 객체
- CustomOAuth2UserService: OAuth2 로그인 시 DefaultOAuth2UserService 대신 동작한다. 가입된 소셜타입, 유저 정보를 가져오고 이미 가입된 사용자라면 업데이트, 첫 회원이라면 회원가입을 진행시킨다.
- OAuth2AuthenticationSuccessHandler: 로그인 인증 성공시 호출된다. JWT를 생성하고 클라이언트에 넘겨준다.
- CookieUtils: 쿠키 생성, 삭제, 조회, 직렬, 역직렬화
- CookieAuthorizationRequestRepository: Authorication request를 Cookie에 저장하기 위한 객체 redirect_uri 쿠키 : Authorization request시 파라미터로 넘어온 redirect_uri를 담고 나중에 application.yml의 authorizedRedirectUri와 일치하는지 확인시 사용