OAuth2LoginConfigurer 초기화 이해

존스노우·2023년 8월 24일
0

springSecurity

목록 보기
26/75
post-thumbnail

  • Oauth2Login설정을 하면 OAuth2LoginConfigurer가 실행됨
  1. 필터 생성 인증 처리하는 필터 -> OAuth2LoginAuthenticationFilter
  • /login/oauth2/code 여기까지 고정 /* 여기들어가는값은 레지스트레이션 ID
  • 인증코드 단계 2단계에 해당됨 -> 임시코드 로 엑세스토큰 교환하는 단계
  1. OAuth2LoginAuthenticationProvider
  • 인증 제공자를 구현한 클래스
  • authorizaionCodeAuthenticationProvider 인가서버랑 통신담당
  • userService 엑세스토큰을 가져온다음 인가서버에게 사용자 정보를 가지고 오고자 할 때
  • authoritiesMapper 권한가 매핑할수 있는정보
  1. OidcAuthorizaionCodeAuthenticationProvider
  • openIdConnect 프로토콜 통해서 사용자 정보 가져옴

  • configure도 호출 됨.
  • 순서대로 보면 OAuth2AuthorizationRequestRedirectFilter가 가장 먼저 실행됨 (1단계)

  • 4개의 설정
  1. AuthorizationEndpointConfig
  • 코드 발급 요청시 여기 설정에서 코드 발급요청하는 Url라든 지 설정 관리
  1. RedirectionEndpointConfig
  • 인가서버에서 클라이언트에게 코드를 발급하기위해 리다이렉트를 하는데 리다이렉트 url 같은 정보관리함
  1. ToeknEndpointConfig
  • 토큰 요청 관리
  1. UserInfoEndpointConfig
  • 유저정보를 인가서버에 요청할때 가지고있는 설정들

디버깅

  • 초기화작업이 이루어지는곳

  • init, configurer

  • 필터 클래스 생성
  • 생성자에 두개에 전달한다.
  • 엑세스토큰을 교환하기위해 전달함.
  • 인가서버와 연동하기위해 실제 인가서버로 보내는 엔드포인트 정보 ,
  • 여러가지 인증과정을위해 클라이언트 정보도 있어야 된다.

  • 이 요청 url로와야 동작 한다.
  • 코드를 받고 여기 리다이렉트 정보를 받아 클라이언트에게 코드를 줄때 정보를 줌

  • 인증받지 못한 요청에서 해당 Url로 보내버린다.

  • 엑세스 토큰을 요청하기 위한 클래스 나중에 볼기회.

  • 인가서버나 사용자의 정보를 가져오는 부분 (UserService)

  • OAuth2LoginAuthenticationProvider 실제 인증 담당하는 코드

  • 이후 OIDC는 제외

  • 코드 방식에 1단계에서 사용하는 필터
  • 사실 이 필터가 먼저 실행됨
profile
어제의 나보다 한걸음 더

0개의 댓글