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 수행 과정
- DispatcherServlet에서 알맞은 Controller를 찾아서 요청 전달.
- Controller에서 요청 수행 후 Callabe 부분을 DispatcherServlet으로 리턴
- DispatcherServlet은 Callable 객체를 WebAsyncManager에게 전달
- WebAsyncManager가 비동기 부분 새로운 쓰레드에서 수행 후 응답.
반응형