스프링 시큐리티에서 SecurityContext를 비동기 스레드에 전파하는 방법
·
Spring/Spring Security
시작하며안녕하세요. 개발자 Stark입니다.오늘은 스프링 시큐리티를 사용할 때 http 메인 호출 내부에서 비동기 메서드를 호출했을 때(한 호출에서 부모-자식 스레드가 함께 동작하는 경우)에 스프링 시큐리티에서는 SecurityContextHolder(ThreadLocal)의 데이터를 어떻게 처리하는지와 이 데이터를 비동기 스레드에 전달 가능한지에 대해 함께 알아봅시다. 저의 경우 업무를 하다 보니 일반 스레드풀을 사용하는 메서드 내부에서 비동기 메서드를 호출하게 되는 경우가 있었는데 이때 유저의 정보가 그대로 전달되어야만 했습니다. 근데 비동기 스레드의 기본 설정 스레드풀인 SimpleTaskExecutor와 일반 스레드에서 사용하는 ThreadPool은 각각 다른 스레드풀이기에 ThreadLocal..