DevBoi

[Spring_Security] 스프링 시큐리티의 이해 본문

Develop/[Spring_Security]

[Spring_Security] 스프링 시큐리티의 이해

HiSmith 2022. 2. 20. 23:56
반응형

스프링 시큐리티는 각각의 역할에 맞는 작업을 처리하는 여러개의 필터들이 체인형태로 구성되어, 순서에 따라 순차적으로 수행된다.

 

스프링 시큐리티의 특징 및 장점

-보안과 관련하여 체계 적으로 많은 옵션을 제공하여 편리하게 사용할 수 있다.

-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에게 부여해, 권한 부여 및 접근 권한을 쉽게 처리할수 있도록 해준다.

 

 

일단 스프링 시큐리티는 필터 체인 방식으로 동작한다는 점과

각 필터별로 하는 일들을 간단하게 공부해봤다.

 

다음에는 하나씩 구현하면서 깊게 파보면서 포스팅을 이어나가보자

반응형

'Develop > [Spring_Security]' 카테고리의 다른 글

[Spring security] Authorization path 오류해결  (0) 2023.10.28