![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/BhESw/btqyqydpnjI/bqVQrjfK4KBainGQRZv3zK/img.png)
Spring Security - ArcheTecher_ExceptionTranslationFilter Spring Security 에서 인증과, 인가 과정에서 예외가 발생할 경우 이를 어떻게 처리하는지 알아보자. 인증과 인가 과정에서 발생하는 예외 AuthenticationException (인증) AccessDeniedException (인가) ExceptionTransalcationFilter FilterChainProxy가 호출하는도중 발생하는 예외를 처리하는 예외 처리기 AccessDeniedException과 AuthenticationException을 처리하는 필터이다. 핵심 메서드는 HandleSpringSecurityException() HandleSpringSecurityException..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/tlVXY/btqyoe6Ynxc/i3pDrYc8Q2ZWuAue8k23dK/img.png)
Spring Security - 아키텍쳐 FilterSecurityInterceptor Spring Security는 인가를 할때 AccessDecisionManager를 사용한다. 그렇다면 AccessDecision Manager는 어디서 사용되는지 살펴보자. FilterSecurityInterceptor FilterChainProxy가 호출하는 Filter중 하나이다. 대부분의 경우에 가장 마지막에 사용된다. 어떤 리소스에 접근하기 전 마지막에 AccessDecisionManager를 사용하여 인가처리를 하는 필터이다. FilterSecurityInterceptor의 프로세스 doFilter FilterSecurityInterceptor도 Filter이기때문에 doFilter 메서드가 호출된다. do..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Giyi5/btqymUmNI8P/jVli7SJNkEYKVIJGHkFeXk/img.png)
Spring Security - ArcheTecher_AccessDecision Manager Customizing 리소스 접근에 대한 권한 관련 설정을 하다보면, 특정 권한이 다른 특정권한의 상위 권한일 경우가 있다. 예를 들면 ADMIN과 USER의 관계의 경우이다. USER 권한을 가진 사용자는 USER권한을 가진 사용자에게 허용하는 리소스에만 접근이 가능하고 ADMIN 권한을 가진 사용자는 ADMIN과, 그 하위권한인 USER권한을 가진 사용자에게 허용하는 리소스 모두 접근이 가능해야한다. 현재 Spring Security에 권한별 접근 리소스 설정만 했을뿐 특별한 설정을 하지않은 상태이다. 상위권한 테스트하기 우리는 내부적으로 ADMIN권한은 USER의 상위권한이라고 정의 하였다. 그렇다면 AD..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cDL7vg/btqyizqmiq7/tmTEdslQBQDKBAhnuC97t1/img.png)
Spring Security - 아키텍쳐 AccessDecision Manager SpringSecurity에서 사용하는 권한처리(인가)와 관련된 인터페이스를 살펴보자. AccessDecisionManager Access Control or Authorization 결정을 내리는 인터페이스 이다. 인증이 완료된 사용자가 리소스에 접근하려고 할때 해당 요청을 허용할것인지 판단하는 인터페이스이다. 인터페이스 구현체는 3가지를 기본으로 제공한다. Voter라는 개념을 가지고 있다. Voter는 의사결정을 내리는데 사용 하며 여러개의 Voter를 가질 수 있다. AffirmativeBased: 여러 Voter중에 하나라도 허용되면 허용된다. (기본 전략) ConsensusBased: 다수결 UnanimousBa..