Spring MVC 기반의 애플리케이션 인증과 인가 기능을 지원하는 보안 프레임워크
Spring Security에서 사용하는 용어
- Principal ( 주체 )
- 일반적으로 인증 프로세스가 성공적으로 수행된 사용자를 의미
- Authentication ( 인증 )
- 사용자가 본인이 맞음을 증명하는 절차
- Credential ( 신원 증명 정보 ) : 사용자를 식별하기 위한 정보 ex) 비밀번호
- Authorization ( 인가 또는 권한 부여 )
- 인증이 정상적으로 수행된 사용자에게 하나 이상의 권한을 부여하여 특정 리소스에 접근 가능하게 허가
- 권한은 일반적으로 역할( Role ) 형태로 부여
- Access Control ( 접근 제어 )
- 사용자가 애플리케이션의 리소스에 접근하는 행위를 제어
서블릿 필터 ( Servlet Filter )
- 서블릿 기반 애플리케이션의 경우 , 엔드포인트에 요청이 도달하기 전 중간에서 요청을 가로챈 후 어떤 처리를 할 수 있는 적절한 포인트를 제공하는 역할
- javax.servlet 패키지에 인터페이스 형태로 정의
- javax.servlet.Filter 인터페이스를 구현한 서블릿 필터는 웹 요청을 가로채어 어떠한 처리 ( 전 처리 ) 를 할 수 있고, 엔드포인트에서 요청처리가 끝난 이후 응답을 클라이언트에게 전달 하기 전에 어떠한 처리 ( 후 처리 ) 를 할 수 있다.
DelegatingFilterProxy
- 보안에 관련된 어떠한 작업을 하는 것이 아닌 서블릿 컨테이너 영역의 필터와 ApplicationContext에 Bean으로 등록된 필터들을 연결하는 브릿지
FilterChainProxy
- 보안 작업을 처리하는 필터의 모음
- FilterChainProxy 부터 보안 필터들이 필요한 작업을 수행