초기화 과정 이해 - OAuth2AuthorizationServerConfiguration

존스노우·2023년 9월 16일
0

springSecurity

목록 보기
70/75

OAuth2AuthorizationServerConfiguration

  • 스프링시큐리티가 제공하는 클래스

  • 인증 인가 기능이 동작할수 있또록 여러 구성요소를 정의하구 설정함,

  • 일반적으로 인증 인가 동작하려면? 시큐리티 필터체인 한개가 반드시 필요함

  • 필터체인으로 인증인가에따른 여러가지 필터를 추가함

  • 리퀘스트 매처같은것도 설정함

  • 시큐리티 필터체인이 최종적으로 생성해서 반환? HttpSecurity

  • 이 클래스가 필터체인 만들어서 반환

apply

  • 시큐리티 빌더클래스를 가지고잇는 클래스
  • 설정클래스들의 init() , configure() 를 호출한다 초기화및 설정 과정
  • OAuth2AuthorizationServerConfiguration 먼저 설정 클래스가 적용 된다.

  • init configure 호출 됨.

  • 리스트 타입에 configurers

  • 5개의 configure가 (리스트) 각 init , configure 실행됨

  • 우리가 직접 만들어도되지만 기본적으로 기본구성을 제공함
  • OAuth2AuthorizationServerConfiguration 가장 메인이 되는 설정 클래스

  • 클라이언트가 인가서버부터 각 엔드포인트가 여러개여서 엔드포인트로 요청하면

  • 요청에 대한 정의한 매칭 여부를 판단 (리퀘스트 매처에 정의한 여러가지 엔드포인트)

  • csrf 기능 무시?

  • 클라이언트가 인가서버로 엔드포인트로 요청할 때 csrf 토큰 무시하고 엔드포인트역할이 수행 되도록 하기 위해

  • apply 설정 클래스가 호출 되도록 ! 설정

  • jwtDecoder 왜 필요? 요청시 인가서버에서 토큰을 검증 해야되기 때문에

  • 설정 클래스 임포트!

  • 2번 클래슬를 호출해서 인증인가 기능을 구현하면 됨.

  • 직접 커스텀해서 사용하는 방법

  • 필터 체인 빈도 만들고
  • applyDefaultSecurity 도 있고

  • 따로 설정을 안해주면 이쪽 필터체인이 실행되서 폼로그인 방식이 된다

커스텀 설정

  • issuer 해당 인가서버에 발행 기관의 위치를 설정함.
  • 레지스터 클라이언트 레파지토리를 통해 실제 레지스터 클라이언트를 만듬
  • 레지스터 클라이언트는 구글이나 네이버에 클라이언트를 등록할때 그 등록을 의미함
  • 인가서버에는 레지스터클라이언트를 통해 클라이언트가 등록되어야 한다.
  • 등록된건 레지스트 클라이언트에 등록이 된다.

  • 서버실행시 여기로 첫번재

  • 메인 설정안에 포함된 설정들

  • 인증을 받지 못한상태에서 서벌 ㅗ접속이 됨

  • 왜? 그럴까?

  • 어떤 url 든 인증을 받아야된다는설정

  • endpointMatcher

  • 즉 인가서버가 클라이언트에서 오는 엔트포인트uri 매칭되는 정보 한해서만 인증을 받겠다.

  • 엔드포인트에 속하지않는 모든 url은 통과 되버린다.

  • 그래서 오류가 나긴하지만 다른 url 들은 어떤요청에도 접속은 됨.

  • 엔드포인트 정보들을 모아둔곳
  • 우리가 변경할 수 있지만 디폴트 값들

  • 매쳐를 통해 디폴트된 url 들은 매처에 의해 인증을 받아야 한다.
  • 여기 까지가 1번째 방식

두번째 방식

  • 똑같이 실행해보면!
  • 같은 결과 실행됨

세번째 방식

  • 여기부분을 복사하는 방식

  • 모든걸 새롭게 할때
profile
어제의 나보다 한걸음 더

0개의 댓글