[Spring] Spring Security의 인증절차

이신영·2024년 3월 25일
1

Spring

목록 보기
11/16
post-thumbnail

스프링에서는 어떤 방식으로 인증/인가 시스템을 만들건지 쉽게 커스텀 할 수 있는 Spring Security라는 하위 프레임워크를 제공한다. 스프링에서 어떻게 인증/인가를 구현할 수 있는지 간략하게 알아보도록하자


구조를 알아보자

spring initializr 사이트를 통해 Spring Security를 Dependencies에 추가한 채로 프로젝트를 생성하고 웹어플리케이션을 바로 실행해보았다면

분명 localhost:8080 으로 접근하여도 알아서 /login 으로 넘어가고 콘솔에는 패스워드를 발급해준다. 아이디는 user 로 입력해서 들어가보면

그제서야 원래 접근하려했던 창에 접근하게되는데 이는 http request를 spring MVC의 컨트롤러보다 먼저 가로채어 처리한다는 것이다. 아 물론 가로챈다 라고해서 Interceptor가 아닌 Filter처리 임을 알아두도록하자

Request → Filter(이 부분) → DispatcherServlet → Interceptor → Controller

필터와 인터셉터는 동작 순서가 다르다


동작 과정

Filter(이 부분)에 대한 그림인데 HTTP RequestFilter Chian에 전달하면 Spring Security의 내부에있는 Anthentication Manager가 권한을 처리해준다. 이때 Authentication 객체를 리턴해줌.

인증이 성공하면 객체를 저장해주는 Security Context 으로 보낸다. 이 Security Context는 세션에 저장된다. 즉, 다음에 다시온다? 이 세션부터 확인해보고 있으면 절차가 더 간단해지겠죠?

그 후 Filter ChainDispatcher Servlet으로 보내준다.

이제 이걸 토대로 자신의 프로젝트에 쓰려면 어떻게해야할까?

궁금하다면?? 다음에 계속..

profile
후회하지 않는 사람이 되자 🔥

0개의 댓글