💡 인가 처리는 인증 처리 이후 사용자 권한에 따른 사이트 접근에 관해 일어나는 과정입니다.

사용자가 HTTP 요청을 합니다.
FilterSecurityInterceptor는 SecurityContextHolder로부터 Authentication을 얻습니다.
FilterSecurityInterceptor는 FilterInvocation을 생성합니다.
FilterInvocation을 SecurityMetadataSource에 전달하고 ConfigAttribute를 생성합니다. ConfigAttribute는 다수가 존재할 수 있습니다.
Authentication, ConfigAttribute를 AccessDecisionManager로 전달합니다.
AccessDecisionManager는 decide(Authentication, Collection) 메서드를 호출하여 AccessDecisionVoter에 처리를 위임합니다. AccessDecisionVoter 또한 여러 개일 수 있습니다.
각 AccessDecisionVoter는 vote() 메서드를 호출하여 해당 Authentication의 Authorities와 ConfigAttribute 목록들을 비교하여 접근 권한을 부여하거나 제한합니다.
7.1. 권한이 존재하는 경우 AccessDecisionManager에게 ACCESS_GRANTED를 전달합니다.
7.2. 권한이 존재하지 않는 경우 AccessDeniedException 예외를 던집니다.