해결된 질문
작성
·
186
0
13분 40초에
세션에서 Context 객체가 있는지 확인하고
세션에 없어서 request 를 확인한다고 하셨는데, request 확인하는 부분을 건너뛰고
바로 AnonymousAuthenticationToken 을 만드는 부분으로 넘어가셨네요
인증이 없는 상태에서 요청하면 SecurityContext를 찾을 때, reuqest는 확인하지 않고 세션만 확인하는걸까요 ?
답변 2
1
네
request 를 확인할 필요가 없는것이 request 는 매 요청마다 바뀌기 때문에 request 에 securityContext 가 존재할 수 없습니다. 그래서 인증이 없는 상태에서는 새롭게 securityContext 를 생성해서 스레드 로컬에 저장하는 것입니다.
그래서 세션에 securityContext 가 없다면 인증을 받지 않은 상태임을 의미하는 것이고 이는 곧 새로운 securityContext 을 만들어 익명 사용자의 인증상태를 나타내도록 AnonymousAuthenticationToken 을 생성하여 처리하고 있다고 보시면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다.
관련 자료 중 스프링 시큐리티의 세부적인 동작 방식에 대해 다루고 있는 내용이 없습니다. 질문하신 내용은 스프링 시큐리티의 인증 과정과 관련된 세부 구현에 대한 것으로, 제공된 정보에서는 해당 문의에 직접적으로 답변할 내용이 없습니다. 스프링 시큐리티의 인증 과정, 특히 SecurityContextRepository
와 SecurityContextHolderFilter
의 작동 방식을 이해하려면 스프링 시큐리티 공식 문서나 해당 주제를 깊이 다루는 기술 자료를 참조하는 것이 좋습니다. 인증이 없는 상태에서 SecurityContext
를 찾는 과정에서 요청(request
) 검사와 세션 검사의 구체적인 순서나 조건은 스프링 시큐리티의 설정과 구현에 따라 달라질 수 있습니다.
감사합니다