Spring Security

스프링 시큐리티(8) - WebAsyncManagerIntegrationFilter

간다12 2024. 7. 20. 18:21

- 비동기 작업을 할때, WebAsyncManagerIntegerationFilter가 수행.

- SecurityContextHolder의 ThreadLocal 전략의 따라 동일한 Thread에서만 SecurityContext가 접근 할 수 있는데, 비동기 방식의 경우 2개의 Thread로 수행되기 때문에 이 부분을 보완위해 Filter 수행.

 

 

* 컨트롤러에서 비동기처리하는데 어떻게 Filter에서 비동기 수행을 알고 작업할까?

  • - WebAsyncManagerIntegrationFilter 작업을 수행하는 방법과 Callabe(비동기처리)의 동작 방식과 관련이 있음.
  • - WebAsyncManagerIntegerationFilter에서 DispatcherServlet 에서 WebAsynManager에 Callabe 비동기 객체 전달하여 WebAsynManager에서 비동기 동작을 수행한다.

- Callabe 수행 과정

  1. DispatcherServlet에서 알맞은 Controller를 찾아서 요청 전달.
  2. Controller에서 요청 수행 후 Callabe 부분을 DispatcherServlet으로 리턴
  3. DispatcherServlet은 Callable 객체를 WebAsyncManager에게 전달
  4. WebAsyncManager가 비동기 부분 새로운 쓰레드에서 수행 후 응답.

 

 

 

반응형