스프링 시큐리티를 활용하기 위해서는 먼저 보안과 관련된 용어를 알아주는 것이 중요합니다.
사용자가 누구인지 확인하는 단계를 의미합니다. 인증의 대표적인 예로는 로그인이 있습니다. 로그인은 DB에 등록된 아이디와 패스워드를 사용자가 입력한 아이디와 비밀번호와 비교해서 일치 여부를 확인하는 과정입니다.
로그인에 성공하면 애플리케이션 서버는 응답으로 사용자에게 토큰을 전달합니다.
인증을 통해 검증된 사용자가 애플리케이션 내부의 리소스에 접근할 때 사용자가 해당 리소스에 접근할 권리가 있는지를 확인하는 과정을 의미합니다.
예를들어, 로그인한 사용자가 특정 게시판에 접근해서 글을 보려고 하는 경우 게시판 접근해서 글을 보려고 하는 경우 게시판 접근 등급을 확인해 접근을 허가하거나 거부하는 것이 인가의 사례입니다.
일반적으로 사용자가 인증 단계에서 발급받은 토큰은 인가 내용을 포함하고 있으며, 사용자가 리소스에 접근하면서 토큰을 함께 전달하면 애플리케이션 서버는 토큰을 통해 권한 유무 등을 확인해 인가를 수행합니다.
스프링 시큐리티는 애플리케이션의 인증, 인가 등의 보안 기능을 제공하는 스프링 하위 프로젝트 중 하나입니다. 보안과 관련된 많은 기능을 제공합니다.
서블릿 필터를 기반으로 동작하며 DispatcherServlet앞에 필터가 배치되어 있습니다.