Spring Security: Authority

John Jun·2023년 7월 12일
0

Index
1. Spring Security의 권한 부여 처리 흐름
2. Spring Security의 권한 부여 컴포넌트

1. 권한 부여 처리 흐름

  1. AuthorizationFilter가 SecurityContextHolder로부터 Authentication을 획득

  2. SecurityContextHolder로부터 획득한 Authentication과 HttpServletRequest를 AuthorizationManager에게 전달

  3. AuthorizationManager의 구현체인 RequestMatcherDelegatingAuthorizationManager는 RequestMatcher 평가식을 기반으로 해당 평가식에 매치되는 AuthorizationManager에게 권한 부여 처리를 위임(RequestMatcherDelegatingAuthorizationManager가 직접 권한 부여 처리를 하는 것이 아니라 RequestMatcher를 통해 매치되는 AuthorizationManager 구현 클래스에게 위임)

  4. 적절한 권한 여부를 판단하여 User의 Access의 허용 여부를 결정하여 다음 프로세스의 실행 여부를 결정

2. Spring Security의 권한 부여 컴포넌트

  1. AuthorizationFilter
  • AuthorizationFilter는 URL을 통해 사용자의 액세스를 제한하는 권한 부여 Filter: AuthorizationFilter 객체가 생성될 때, AuthorizationManager를 DI 받아 AuthorizationManager를 통해 권한 부여 처리를 진행
  • AuthorizationManager의 구현 클래스에 따라 권한 체크 로직이 다르다.
  1. AuthorizationManager
  • 권한 부여 처리를 총괄하는 매니저 역할을 하는 인터페이스
  1. RequestMatcherDelegatingAuthorizationManager
  • AuthorizationManager의 구현 클래스중 하나로, 직접 권한 부여 처리를 수행하지 않고 RequestMatcher를 통해 매치되는 AuthorizationManager 구현 클래스에게 권한 부여 처리를 위임
  • RequestMatcher는 SecurityConfiguration에서 .antMatchers("/orders/**").hasRole("ADMIN") 와 같은 메서드 체인 정보를 기반으로 생성
profile
I'm a musician who wants to be a developer.

0개의 댓글