작성
·
559
0
안녕하세요. 강의 잘 듣고 있습니다.
SecurityContextHolder.clearContext()를 해주는데 SecurityContextHolder는 SecurityContext를 담는 객체인가요?
그러면 SecurityContextHolder에 여러 SecurityContext가 들어갈수도 있는건가요?
그럼 한 사용자의 여러 인증객체를 가지고 있는건가요?? 아니면 서버에 인증한 여러 사용자들의 인증객체를 SecurityContextHolder에 담고 있는건가요??
만약 여러 사용자의 인증 객체들 SecurityContextHolder에서 가지고 있는데 SecurityContextHolder.clearContext()를 한다면 로그아웃 한 사용자 뿐만 아니라 다른사용자도 로그아웃 될것 같은 느낌의 메서드 이름인데....
어떤 기준으로 SecurityContextHolder안에 SecurityContext를 가지고 있는지 궁금합니다!
답변 1
1
네
SecurityContextHolder 는 SecurityContext 를 담는 클래스는 맞지만 여러개를 중복해서 담지는 않습니다.
SecurityContextHolder 는 ThreadLocal 이라는 요청 스레드마다 주어지는 개별 저장소를 속성으로 가지고 있고 이 ThreadLocal 에 SecurityContext 를 저장하기 때문에 여러 사용자가 서버에 접속하더라도 각 사용자 스레다마다 가지고 있는 ThreadLocal 은 유일하기 때문에 결론적으로 SecurityContextHolder 은 사용자별로 오직 하나의 SecurityContext 만 참조하고 있습니다.
SecurityContextHolder / SecurityContext 챕터 강의를 참고해 주시기 바랍니다.
감사합니다
친절한 답변 감사합니다~ 뒤에 해당하는 내용이 나오는군요! 빨리 봐야겠네요