AccessDeniedException 4

23.AccessDesicionManager, AccessDecisionVotor

AccessDecisionManager 인증정보 , 요청정보, 권한정보 를 이용해서 사용자의 자원접근 허가여부를 결정하는 주체 여러개의 Votor 를 가지며 Votor 들에게 허용, 거부 , 보류 값을 각각 리턴받아 판단, 결정한다. 접근 거부시 AccessDeniedException을 발생 AcceessDesicionManager 의 접근 결정 유형에 따른 구현객체들 AffermativeBased : Votor 클래스 중 하나라도 접근 허가를 내면 접근 허가 ConsensusBased : 다수표에 의해 판단, 동수일경우 default 값은 허가이며, allowIfEqualGrantedDeniendDecisions 속성을 false 로 주면 접근 거부 설정 됨 UnanimousBased : 하나의 Vot..

22.Authorization, FilterSecurityInterceptor

Authorization 무엇이 허가되었는지 증명하는 것이다. SpringSecurity 는 Authentication 과 Authorization 으로 영역을 나눈다. Authentication 영역에서는 사용자가 자원에 접근하기위해 Request 를 보낼 때 인증 여부를 확인한다. Authorization 영역에서는 인증이 완료 된 후 사용자가 특졍 자원에 접근할 때에 사용자의 권한이 특정 자원의 접근 권한에 충분하는 지의 심사를 한다. SpringSecurity 가 지원하는 권한 계층 웹 계층 : Presentation Tier 의 URL 요청 단위 레벨 보안 서비스 계층 : Service Tier 의 메서드 단위 레벨 보안 도메인 계층(Access Control List, 접근 제어 목록) : P..

14.DelegatingFilterProxy, FilterChainProxy

DelegatingFilterProxy Filter는 Servlet 2.3 이상부터 적용된 기술이다. Spring 에서 필터가 동작한다는 것은 SpringContext 안에 Filter들이 있다는 뜻이된다. 하지만 Filter 는 ServletContext에 존재해 영역이 다르다. 결국 Filter는 스프링 기술이나 Bean을 Injection 받을 수 없다. 이렇게 각자 영역이 다른 상태에서 Servlet Spec 에서 사용되는 Filter를 사용할 수 있게끔 하는 것이 DelegatingFilterProxy 이다. DelegatingFilterProxy 의 작동원리 SpringBean 이 Filter를 상속한다. 이는 Filter Type Bean을 의미한다. DelegatingFilterProxy ..

12.ExceptionTranslationFilter, RequestCacheAwareFilter

ExceptionTranslationFilter 크게 2가지의 Exception 을 처리한다. AuthenticationException : 인증 예외 AccessDeniedException : 인가 예외 AuthenticationException , AccessDeniedException은 누가 Throw 할까. FilterSecurityInterceptor 라는 필터이다. SpringSecurity의 보안필터 중 제일 마지막에 위치한다. FilterSecurityInterceptor 앞에 위치한 Filter 가 ExceptionTranslationFilter 이다. ExceptionTranslationFilter 는 Try-Catch 문으로 감싸서 FilterSecurityInterceptor 를 호..