스프링에서는 어떤 방식으로 인증/인가 시스템을 만들건지 쉽게 커스텀 할 수 있는 Spring Security
라는 하위 프레임워크를 제공한다. 스프링에서 어떻게 인증/인가를 구현할 수 있는지 간략하게 알아보도록하자
spring initializr 사이트를 통해 Spring Security를 Dependencies에 추가한 채로 프로젝트를 생성하고 웹어플리케이션을 바로 실행해보았다면
분명 localhost:8080 으로 접근하여도 알아서 /login 으로 넘어가고 콘솔에는 패스워드를 발급해준다. 아이디는 user 로 입력해서 들어가보면
그제서야 원래 접근하려했던 창에 접근하게되는데 이는 http request를 spring MVC의 컨트롤러보다 먼저 가로채어 처리한다는 것이다. 아 물론 가로챈다 라고해서 Interceptor가 아닌 Filter처리 임을 알아두도록하자
Request → Filter(이 부분) → DispatcherServlet → Interceptor → Controller
필터와 인터셉터는 동작 순서가 다르다
저 Filter(이 부분)에 대한 그림인데 HTTP Request
를 Filter Chian
에 전달하면 Spring Security의 내부에있는 Anthentication Manager
가 권한을 처리해준다. 이때 Authentication 객체를 리턴해줌.
인증이 성공하면 객체를 저장해주는 Security Context
으로 보낸다. 이 Security Context는 세션에 저장된다. 즉, 다음에 다시온다? 이 세션부터 확인해보고 있으면 절차가 더 간단해지겠죠?
그 후 Filter Chain
이 Dispatcher Servlet
으로 보내준다.
이제 이걸 토대로 자신의 프로젝트에 쓰려면 어떻게해야할까?
궁금하다면?? 다음에 계속..