1.의의
- 마지막에 위치한 필터로써 인증된 사용자에 대하여 특정 요청의 승인/거부 여부를 최종적으로 결정한다.
- 인증 후 자원에 접근 가능한 권한이 존재하지 않을 경우 AccessDeniedException 을 발생한다.
- 권한 제어 방식 중 HTTP 자원의 보안을 처리하는 필터 이다.
- 실제 권한 처리를 AccessDecisionManager에게 맡긴다.
2.주요 아키텍처

1)FilterSecurityInterceptor는 ContextHolder에서 인증 객체가 있는지 확인한다.
2)인증객체 없이 보호자원에 접근을 시도할 경우AuthenticationException 을 발생한다.
3)FilterSecurityInterceptor는 부모 클래스인 AbstractSecurityInterceptor의 메서드를 호출하여 인가처리를 하게 된다.
- AbstractSecurityInterceptor 클래스의 beforeInvocation 메서드에서 AccessDecisionManager의 decide메서드를 호출하여 인가처리를 진행한다.
- AccessDecisionManager는 AccessDecisionVoter를 호출하여 Voter들을 반환받는다.
- AccessDecisionManager는 ExpressionHandler를 사용하여 반환되는 Voter들을 활용하여 최종 결정을 하게된다.
- 처리 과정중 발생한 예외는 SpringSecurity의 ExceptionHandling 처리를 담당하는 Filter에게 위임한다.
- 인가에 실패한다면 AccessDeniedException 이벤트를 발생시키고 해당 예외를 처리하는 ExceptionHandling Filter가 존재하고 해당 필터가 처리를 하게되고, 로그인페이지로 리다이렉트한다.