Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다.
웹사이트는 각종 서비스를 하기 위한 리소스와 서비스를 사용하는 유저들의 개인 정보를 가지고 있다. 이들 리소스를 보호하기 위해서 일반적으로 웹사이트는 두가지 보안정책을 설정해야 한다.
1. 인증 (Authentication)
해당 사용자가 맞는지를 확인하는 절차이다.
사이트에 접근하는 사람이 누구인지 시스템이 알아야한다.특정 리소스에 접근하거나 개인화된 사용성을 보장 받기 위해서는 반드시 로그인 과정이 필요하다.
- 기본 로그인 : Session, 토큰 (Sessionless) 관리
- SNS 로그인 : 소셜로그인 (인증 위임)
2. 인가 혹은 권한 (Authorization)
인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차
사용자가 속한 시스템은 로그인한 사용자가 어떤 작업을 할 수 있는지 권한을 설정한다.
개발자는 권한이 있는 사용자에게만 페이지 엑세스를 허용하게한다.
단일 HTTP 요청에 대한 일반적인 핸들러 계층의 모습
1. 클라이언트는 어플리케이션에 요청을 보낸다.
2. 컨테이너는 요청 URI 경로를 기반으로
FilterChain과 HttpServletRequest를 처리하는 Servelet을 포함한 FilterChain을 생성한다.
⭐ 보통, 하나의 서블렛은 하나의 HttpServletRequest 와 HttpServletResponse를 다룰 수 있음.
참고🧐
[1] https://mangkyu.tistory.com/76
[3] https://spring.io/guides/topicals/spring-security-architecture