Spring Security란?

Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크입니다. 스프링 시큐리티가 보안과 관련되어서 인증, 권한 부여 등 여러 기능을 수행하기 때문에, 개발자가 세션을 체크하는 등의 로직을 짤 필요가 없습니다.

Spring Security 특징

Filter

스프링 시큐리티는 서블릿의 필터를 기반으로 동작합니다. 필터란 웹 애플리케이션에서 HTTP 요청과 응답을 처리하는 데 사용하는 컴포넌트를 의미합니다.

필터는 서블릿 컨테이너 앞에 위치하여 DispatcherServlet으로 요청이 가기 전에 요청을 가로채서 보안 작업을 수행한 후, 권한이 없는 경우 인증 요청 화면으로 자동 리다이렉트 해줍니다

Untitled

클라이언트가 서버에 요청을 보내면, 컨테이너는 필터와 서블릿을 포함하는 하나의 필터 체인을 생성합니다.

요청은 순서대로 필터를 거치게 되는데, 만약 필터에서 걸러진다면 필터 내부에서 HttpServletResponse를 만들어 서블릿 대신에 클라이언트에게 응답을 보냅니다

DelegatingFilterProxy