Spring Security의 권한 부여 처리 흐름

  • Spring Security Filter Chain에서 URL을 통해 사용자의 액세스를 제한하는 권한 부여 Filter는 바로 AuthorizationFilter 이다.
    • SecurityContextHolder로 부터 Authentication을 획득
  • SecurityContextHolder로 부터 획득한Authentication과 HttpServletRequest를 AuthorizationManager에게 전달
  • AuthorizationManager는 권한 부여 처리를 총괄하는 매니저 역할을 한다.
  • RequestMatcherDelegatingAuthorizationManagerAuthorizationManager를 구현하는 구현체 중 하나이다.
    • RequestMatcherDelegatingAuthorizationManagerRequestMatcher 평가식을 기반으로 해당 평가식에 매치되는 AuthorizationManager에게 권한 부여 처리를 위임하는 역할
    • RequestMatcherDelegatingAuthorizationManager가 직접 권한 부여 처리를 하는 것이 아니라 RequestMatcher를 통해 매치되는 AuthorizationManager 구현 클래스에게 위임
    • RequestMatcherDelegatingAuthorizationManager 내부에서 매치되는 AuthorizationManager 구현 클래스가 있다면 해당 AuthorizationManager 구현 클래스가 사용자의 권한을 체크
  • 적절한 권한이 아니라면 (5)와 같이 AccessDeniedException이 throw되고 ExceptionTranslationFilter가 AccessDeniedException을 처리

+ Recent posts

출처: http://large.tistory.com/23 [Large]