카테고리 없음

Spring Security 강의 필기 노트 (1)

truly-sparkle2 2024. 6. 23. 22:19

Spring Security

기본설정

모듈 추가와 동시에 기본 보안이 설정됨

  • Any Request에 대해 Authenticated가 설정됨
  • 로그인을위해 formLogin과 HTTP BASIC 방식을 제공함
  • 자동으로 계정이 생성됨

문제점

하지만, 실제 서비스 운영이 불가능함

  • 계정 생성 기능이 없음
  • 실제 요구되는 권한 조건을 만족하지 못함 (권한 세분화 )

HttpSecurity

역할

보안에 필요한 각 설정 클래스와 필터들을 생성하고 최종적으로 SecurityFilterChain 빈 생성

구성

  • HttpSecurityConfiguration
    • HttpSecurity를 생성하는 클래스
  • SpringBootWebSecurityConfiguration
    • Spring Security와 Spring Boot를 통합하여 웹 애플리케이션의 보안 구성을 간편하게 만들어줌
  • SecurityBuilder
    • 웹 보안을 구성하는 빈 객체와 설정 클래스 생성
    • WebSecurty, HttpSecurity
  • SecurityConfigurer
    • Http 요청과 관련된 보안처리 필터를 생성하고 초기화 설정 관여
  • SecurityFilterChain
    • RequestMatcher에 적용되는 SecurityFilter들의 집합

라이프 사이클

  • HttpSecurityConfiguration 에서 HttpSecurity를 생성
  • SpringBootWebSecurityConfiguration에서 HttpSecurity를 주입받아 build()실행
  • build() 과정에서 SecurityConfigurer의 구현체들의 init과 configurer를 실행
  • 최종적으로 SecurityFilterChain 생성

플로우

HttpSecurity ⇒ SecurityFilterChain

WebSecurity

역할

  • HttpSecury의 SecurityFilterChain을 이용해 FilterChainProxy 를 생성

구성

  • WebSecurityConfiguration
    • WebSecurity를 생성하는 클래스
  • FilterChainProxy
    • FilterChainProxy는 여러 개의 SecurityFilterChain을 관리하고, 요청 URL에 맞는 적절한 필터 체인을 선택하여 실행

라이프 사이클

  • WebSecurityConfiguration 에서 WebSecurity 를 생성
  • WebSecurity 는 HttpSecurity 에서 생성한 SecurityFilterChain 빈을 SecurityBuilder 에 저장
  • build()를 실행하면 SecurityBuilder에서 SecurityFilterChain을 꺼내 FilterChainProxy 생성자에 전달

플로우

WebSecurity ⇒ HttpSecurity ⇒ SecurityFilterChain ⇒ FilterChainProxy

반응형