목적
스프링 시큐리티의 Authorization 과정에 대해서 잘 알기위함.
다음에 까먹어도 이 글을 보고 잘 이해하기 위함.
Authorization
- SpringSecurity는 권한이나 인증이 필요한 특정 주소를 요청을 했을 때 BasicAuthenticationFilter라는 필터가 발동된다.
이 필터는 (1)토큰을 검증하고, (2)Autentication객체를 만들어서 SpringSecurity세션에 담는 역할을한다.
- 일단 login요청을 했을 때 우리는 authencation에서 스프링 시큐리티 컨텍스트홀더에 그 loginuser를 세션에 등록하지만, 우리는 다른 api요청이 들어올때 마다 Authorization SecurityConfig에서 세션 STATELESS 정책을 사용한다. -> JWT정책을 사용하기 때문에 세션을 유지 시킬 필요가 없다. 근데 BasicAuthenticationFilter에서 Autentication객체를 만들어서 SpringSecurity세션에 담는이유는 인증토큰에 담겨있는 role을 알기위해서.
- role도 해당 api요청에 필요한 role과 일치하면 chain.doFilter(request,response); 로 컨트롤러 (Dispatcher Servlet)으로 진입!