[SpringBoot] ThreadLocal을 활용한 인증관리

개요 Spring Boot는 스레드 풀을 통해 요청에 맞는 스레드를 할당합니다. 인증된 사용자의 ID를 ThreadLocal에 저장하여 전역적으로 접근 가능하게 하려고 했습니다. 문제점 ThreadLocal에 저장되고 초기화 하지 않았을 때 다음 사용자가 인증에 실패해도 전에 사용자의 정보가 남아있어 비즈니스 로직이 실행되는 문제가 발생했습니다. 시나리오 사용자 1이 ID “1"로 인증 성공 후 ThreadLocal에 저장 사용자 2가 토큰 없이 요청 (인증 실패) 사용자 2가 사용자 1의 정보로 비즈니스 로직 실행 해결방안 ...

June 20, 2024 · Lee WooJin