[Spring_Security] 스프링 시큐리티의 이해
스프링 시큐리티는 각각의 역할에 맞는 작업을 처리하는 여러개의 필터들이 체인형태로 구성되어, 순서에 따라 순차적으로 수행된다.
스프링 시큐리티의 특징 및 장점
-보안과 관련하여 체계 적으로 많은 옵션을 제공하여 편리하게 사용할 수 있다.
-Filter 기반으로 동작하여, MVC와 분리하여 동작이 가능하다.
-어노테이션을 통한 간단한 설정이 가능하다.
-스프링 시큐리티는 기본적으로 쿠키 + 세션으로 동작한다.
스프링 시큐리티의 기본 필터 종류이다.
-SecurityContextPersistenceFilter : SecurityContextRepository에서, 해당 SecurityContext를 저장하고 로드하는 역할을 한다.
-LogoutFilter : Logout 으로 지정된 가상의 url 이 있어, 해당 url 요청시에 사용자를 로그아웃 시킨다.
-UsernamePasswordAuthenticationFilter :사용자 명과 비밀번호로 이루어진 폼 기반의 url 이 있고, 이 요청을 감시하여, 해당 Url 요청시에 사용자에 대한 인증을 진행한다.
-DefaultLoginPageGeneratingFIlter : 폼 or openId기반의 인증에 사용하는 url을 감시하여 해당 Url에 따른 폼 기반 url html을 생성한다.
-BasicAuthenticationFilter : Http 기본 인증 헤더를 가지고 이를 처리한다.
-RequestCacheAwareFilter : 로그인 성공 이후에, 기존에 가로챘던 사용자의 요청 url 에 대한 context다시 로드한다.
-AnonymoutAuthenticationFilter : 사용자에 대한 인증이 아직 되지 않았으면, 익명 사용자로 해당 사용자를 처리한다.
-SessionManagementSession : 인증된 사용자의 세션을 트래킹할수 있도록 도와준다.
-ExceptionTranslationFilter : 이 필터는 보호된 요청을 처리하는 동안 기대된 예외와 라우팅을 처리한다.
-FilterSecurityInterceptor : 이 필터는 접근 결정관리자라고도 하고, 권한 부여와 관련된 것을 accessDecisionManager에게 부여해, 권한 부여 및 접근 권한을 쉽게 처리할수 있도록 해준다.
일단 스프링 시큐리티는 필터 체인 방식으로 동작한다는 점과
각 필터별로 하는 일들을 간단하게 공부해봤다.
다음에는 하나씩 구현하면서 깊게 파보면서 포스팅을 이어나가보자