1. 동작 원리
시나리오: 한 사용자가 5번의 API 요청을 보낸 경우
1. 시나리오 배경
- 한 사용자가 서버에 동일한 API 요청을 5번 보낸 상황을 가정합니다.
- 서버는 Java와 Spring Security를 사용하여 요청을 처리하고, 각 요청에서 사용자 인증을 관리합니다.
- 서버는 스레드 풀을 사용하여 들어오는 요청을 처리하며, Spring Security는 각 스레드에 대해
SecurityContextHolder
를 통해 인증 정보를 관리합니다.
2. 요청 처리 흐름
요청 1
- 사용자 A가 첫 번째 API 요청을 보냅니다.
- 서버는 스레드 풀에서 스레드 1을 할당하여 이 요청을 처리합니다.
- *
SecurityContextHolder.getContext()
*가 호출되어 스레드 1의 SecurityContext
가 생성됩니다.
- 인증이 완료되고, 스레드 1의
SecurityContext
에 사용자 A의 인증 정보가 저장됩니다.
- 요청 처리가 완료되면, 스레드 1은 스레드 풀로 반환됩니다.
요청 2
- 사용자 A가 두 번째 API 요청을 보냅니다.