Spring Security - 자동설정에 의한 초기화 과정 이해(1)

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

springSecurity

목록 보기
2/75

SecurityBuilder Class

WebSecurity / WebSecurity

자동설정으로 어플리케이션 구동한다.

  • 위에서부터 순서대로 설정클래스 실행

SpringWebMvcImportSelector

  • 인터페이스 임 구현하게 되면 우리가 어떤 조건에 따라서 원하는 설정클래스를 로드해야될때 ImportSelector로드 가능함.

  • 1번이 트루면 A설정 클래스로드 이런식..

  • 오른쪽 WebMvcSecurityConfiguration 을 현재 어떤 조건에따라 로드해서 실행하고 있음.

    SecurityFilterAutoConfiguration

  • DelegatingFilterProxyRegistartionBean 로드

  • 그림을 왼쪽에서 오른쪽으로 읽자

  • 검색된 빈에게 실제 클라이언트 요청을 위임하는 역할임

  • 검색된 빈은 필터체인프록시라는 클래스임

WebMvcSecurityConfiguration

  • 3개의 타입 리졸버를 생성.
  • AuthenticationPrincipalArgumentResolver
  • 자동적으로 인증받은 객체값을 바인딩 해줌
  • ex) 어노테이션 principal 값 -> 인증을받게되면 인증객체 생성
    -> 안에는 User객체 저장됨 / User객체가 principal에 저장됨
  • 그래서 인증받은 객체안에 유저는 어노테이션 선언된 값에 바인딩됨.
    ( 오늘 인증테스트 생성한걸 기억하자 인증뚫고 테스트하느냐 힘들엇어 ㅠㅠ)

SpringBootWebSecurityConfiguration

  • 옆에 그림을 실행 시킴 SecurityFilterChain 타입의 빈.

  • 시큐리티 의존성을 추가했으니. 인증이나 인가 정책(디폴트로) 초기화 되기 위해 오른쪽 그림처럼 빈을 만들어 버림.

    WebSecurityConfiguration

  • WebSecurity를 만든다

  • WebSecurity 는 securityFilterChainByilders라는 속성이있음

  • 그 안에 SecuriityFilterChain은 위에 설정한 그림

  • SecurityBuilder가 가지고있음

  • 웹 시큐리티가 빌더스를 가지고있다가 build() 메서드 실행 (보안의기능을위해)

  • requestMatcher = any any request -> 어떤 요청도 저 필터를 다타게하겠다..

  • 기본으로 자동설정에 의한 HttpSecurity 에서 SecurityFilterChain은 한개로 설정되있지만 그 이상이 될수 있다.

profile
어제의 나보다 한걸음 더

0개의 댓글