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

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

springSecurity

목록 보기
3/75

가장 문제?

이런 순 왜?

SpringWebMvcImportSelector

  • 우리가 사용하고자하는 설정 클래스의 값들을 문자열로 구성해서 리턴하면된다?

  • 간단히 요약하면, 이 코드는 DispatcherServlet이 클래스 경로에 있는지 확인

  • 현재 웹 의존성을 추가했기때문에 WebMvcSecuritconfiguration 반환함

    SecurityFilterAutoConfiguration

  • DeleatingFilterProxy 빈을 등록.

  • 이 이름을 가진 빈을 찾아서 그 빈에게 클라이언트 요청을 넘겨주기위해서.
  • 필요한 필터가 위에 델리게이팅프록시 빈을 등록?

WebMvcSeurityConfiguration

  • 임포트 셀렉터에서 로드되도록해서 실행됨.

  • 아규 먼트들을 등록해준다.

    HttpSecurityConfiguration

  • HttpSecurity 객체를 만들때 마다 각각의 인스턴스로 생성된다.

  • 여러가지 설정을하고 리턴하는데 어디선가 Httsecurity 참조하고있다?

SpringBootWebSecurityConfiguration

  • 여기서 참조
  • 별도의 설정클래스를 만들지않으면 여기서 실행된다

  • 이런 클래스들이 잡혀 있느냐? 현재 참이냐

  • 아래와 같은 클래스 타입빈이 생성되있지 않으냐?

  • 두 조건 이 모두참이라 디폴트 설정이 실행됨.

  • 만약 참이아니면 ( 우리가 설정한클래스가 실행됨)

    WebSecurityConfiguration

  • SecurityFilterChain 하나이상 것들을 주입받는다.

  • FilterChainProxy를 최종적으로 반환

  • 이 코드가

  • 저장하고
  • 필터체인프록시에 전달해서 최종결과값 반환
  • 최종적으로 빌드. 필터체인이 만들어 진다.
  • return this.webSecurity.build();

  • 시큐리티 필터체인을 저장했던것들을 꺼내와서 이 과정을 다시거친다.
  • 웹화면에서 루트 주소로 들어가면

  • FilterChainProxy클래스가 받게된다.
  • 초기설정된 필터들을 가지고 있다.

  • httpBasic 따로 만들어보자.

  • 방금 우리가 설정했으니 여기로 안온다.

  • 설정이 2개라 두번 호출 됨.
profile
어제의 나보다 한걸음 더

0개의 댓글