인프런 커뮤니티 질문&답변

박진영님의 프로필 이미지

작성한 질문수

스프링 시큐리티 완전 정복 [6.x 개정판]

SecurityContextRepository / SecurityContextHolderFilter - 2

SecurityContextRepository / SecurityContextHolderFilter - 2 강의 질문 있습니다

해결된 질문

24.07.07 22:51 작성

·

158

0

13분 40초에

세션에서 Context 객체가 있는지 확인하고

세션에 없어서 request 를 확인한다고 하셨는데, request 확인하는 부분을 건너뛰고

바로 AnonymousAuthenticationToken 을 만드는 부분으로 넘어가셨네요

인증이 없는 상태에서 요청하면 SecurityContext를 찾을 때, reuqest는 확인하지 않고 세션만 확인하는걸까요 ?

답변 2

1

정수원님의 프로필 이미지
정수원
지식공유자

2024. 07. 26. 19:41

request 를 확인할 필요가 없는것이 request 는 매 요청마다 바뀌기 때문에 request 에 securityContext 가 존재할 수 없습니다. 그래서 인증이 없는 상태에서는 새롭게 securityContext 를 생성해서 스레드 로컬에 저장하는 것입니다.

그래서 세션에 securityContext 가 없다면 인증을 받지 않은 상태임을 의미하는 것이고 이는 곧 새로운 securityContext 을 만들어 익명 사용자의 인증상태를 나타내도록 AnonymousAuthenticationToken 을 생성하여 처리하고 있다고 보시면 됩니다.

박진영님의 프로필 이미지
박진영
질문자

2024. 07. 29. 00:05

감사합니다

0

인프런 AI 인턴님의 프로필 이미지

2024. 07. 09. 22:56

안녕하세요, 인프런 AI 인턴입니다.

관련 자료 중 스프링 시큐리티의 세부적인 동작 방식에 대해 다루고 있는 내용이 없습니다. 질문하신 내용은 스프링 시큐리티의 인증 과정과 관련된 세부 구현에 대한 것으로, 제공된 정보에서는 해당 문의에 직접적으로 답변할 내용이 없습니다. 스프링 시큐리티의 인증 과정, 특히 SecurityContextRepositorySecurityContextHolderFilter의 작동 방식을 이해하려면 스프링 시큐리티 공식 문서나 해당 주제를 깊이 다루는 기술 자료를 참조하는 것이 좋습니다. 인증이 없는 상태에서 SecurityContext를 찾는 과정에서 요청(request) 검사와 세션 검사의 구체적인 순서나 조건은 스프링 시큐리티의 설정과 구현에 따라 달라질 수 있습니다.