스프링 시큐리티에 대한 기본 개념 학습
1. Spring Security 란 ?
어플리케이션에 인증과 권한 부여를 제공하는데 중점을 둔 스프링 하위의 프레임워크.
여기서 인증(Authenticate) 와 인가(Authorize) 에 대한 이해가 먼저 필요합니다.
인증(Authenticate)은 간단히 말해서 누구인지 확인하는 것입니다.
어떤 보호된 리소스에 접근할 때 접근하는 대상이 누구인지 확인하는 과정입니다.
인가(Authorize)는 리소스에 대한 접근 권한이 있는지 확인하는 것입니다.
어떤 대상을 인증했을때, 그럼 그 대상은 이 리소스에 접근이 가능한지 확인합니다.
스프링 시큐리티는 인증, 인가의 과정을 Filter 를 통해서 제어를 합니다.
Filter 의 위치를 대략적으로 그려보면 위와 같습니다.
어플리케이션에 request 가 들어왔을때, 가장 바깥에서 요청과 응답을 걸러주는 역할을 합니다. '걸러준다'라는 표현에 집중해야 합니다.
커피를 생각해보면 커피 필터를 통해 맛있는 커피만 추출되듯이, 처리하고 싶은 요청을 필터를 통해 걸러준다고 해석해야합니다.
필터를 통해 한번 걸러진 요청이 그 다음인 Dispatcher Servlet 으로 들어오고, 그 뒤에는 인터셉터나 프록시 패턴이 적용된 AOP 등을 거쳐서 원하는 위치에 도달하게 됩니다.
스프링 시큐리티는 필터 체인 (Filter Chain) 을 통해서 역할을 수행하는데, 컨테이너가 하나의 필터 체인을 생성하고
개부의 필터들을 차례대로 수행하여 요청을 걸러냅니다.
'BackEnd > Spring' 카테고리의 다른 글
[Spring] Test - @SpringBootTest (0) | 2022.03.20 |
---|---|
[Spring] Spring Security (4) - Spring Boot 에서의 동작 실습 (0) | 2022.02.27 |
[Spring] Spring Security (3) - Spring Boot의 Filter Chain (0) | 2022.02.27 |
[Spring] Spring Security (2) - Spring Security Filter Chain (0) | 2022.02.23 |
[Spring] JWT + 2 Factor(SMS 인증) (0) | 2021.12.20 |