Spring Security가 무엇이고, 어떻게 동작하는지 알아보자!
Spring Security는 인증(Authentication)과 인가(Authorization) 등 보안에 관한 처리를 담당하는 스프링 하위 프레임워크이다.
Credential 기반 인증 방식을 사용하여 인증과 인가를 수행한다.
Credential 기반 인증 방식은 사용자명(Principle), 비밀번호(Credential)를 사용한다.
자격 증명을 검증하여 해당 사용자가 본인이 맞는지 확인하는 것이다.
인증 이후에 발생하는 과정으로, 인증된 사용자가 해당 리소스에 대한 접근 권한이 있는지를 판단하는 절차이다.
Resource에 접근하는 대상을 말한다.
접근 대상의 비밀번호이다.
인증된 사용자의 정보들을 저장하는 공간이다.
SecurityContextHolder에 저장된 SecurityContext들은 전역으로 참조될 수 있다.
현재 인증한 사용자에 대한 정보를 가지며, Authentication을 보관하는 역할이다.
Spring Security는 SecurityContext 안에 Authentication 객체가 존재하는지를 체크해서 인증여부를 결정한다.
현재 접근하는 주체의 인증 정보와 권한을 가지고 있으며, AuthenticationManager에 의해 제공됩니다.
인증 주체에게 부여된 권한이다.
ex) ROLE_USER
, ROLE_ADMIN