Session 과 SecurityContext에 관련된 질문입니다.
790
작성한 질문수 67
안녕하세요 선생님 질문이 있습니다.
다른 질문들을 읽어보니
인증관련 관계도를 보면 이렇습니다.
Session > SecurityContext > Authentication > UserDetials 입니다.
+ 그리고 스프링 시큐리티에서 SecurityContext 에 인증객체를 저장하는 것은 세션과는 아무런 상관이 없습니다.
SecurityContextHolder > ThreadLocal > SecurityContext > Authentication > UserDetails
이러한 관계도를 가진다고 말씀해주셔서 디버깅 해보니

인증을 성공한 시점에 request.getSession에서 attribute로 SecurityContextImpl 을 들고 있다는것을 확인하였습니다.
궁금한 것은 spring security에서 SecurityContext에 인증객체를 저장하는것은 세션과 아무런 상관이 없다는것이
session은 attributes에 들고 있고
SecurityContextHolder는 threadlocal에 들고 있으니
그냥 각각 다른 저장소에 같은것을 저장할 뿐이다. 그래서 아무런 상관이 없다.
라고 이해하면 맞을까요?
답변 1
3
아주 넓은 의미에서 보면 세션과 전혀 상관이 없다고 할 수는 없습니다.
일단 SecurityContext 객체도 세션에 저장되기 때문입니다.
다만 스프링 시큐리티에서는 해당 사용자가 인증이 되었는지 아닌지를 판별할 때 세션을 직접 참조하는 것이 아닌 ThreadLocal 에 저장된 SecurityContext 객체를 꺼내어 이 속에 Authentication 객체가 존재하는지 여부를 보기 때문에 세션과는 직접적인 상관이 없다고 설명한 것으로 이해하시면 되겠습니다.
그리고 스프링 시큐리티에서는 세션을 아예 사용하지 않고도 인증을 구현하는 일종의 토큰 방식을 사용할 수도 있기 때문에 세션에 의존적이지 않습니다. 하지만 이 때에도 SecurityContext 객체는 여전히 인증여부를 판단하는 객체이기 때문에 세션보다는 SecurityContext 객체가 좀 더 비중이 있는 것이고 시큐리티는 이 객체안에 Authentication 가 존재하는지를 항상 체크하고 있습니다.
시큐리티 공부 버전 질문
0
176
1
[해결 방법] MethodSecurityConfig.customMethodSecurityMetadataSource() 호출하지 않는 이슈
0
187
1
AbstractSecurityInterceptor.class.beforeInvocation()를 2번 실행하는 경우
0
179
1
강의 코드가 왜이렇게 뒤죽박죽인가요...
0
253
1
메인 페이지로 접속해도 login url로 리다이렉트가 되지 않습니다..
0
238
1
파라미터값이 넘어가지 않습니다 ....
0
375
1
security filterChain 설정 질문이 있습니다.
0
332
1
소스 부분 질문 드립니다.
0
210
2
섹션4 7번 강의 문제가 있는거 같네요.
0
345
2
파일이 수시로 이름이 바껴있네요 ㄷㄷ
0
306
1
HttpSessionSecurityContextRepository를 사용안하는 문제
0
557
2
error , exception 이 잘 안됩니다.
0
284
2
thymeleaf tag 질문합니다.
0
198
2
버전업하면서 deprecated된 것들이 너무많아요
0
478
1
spring security 패치 관련
0
437
1
모바일을 사용할때 토큰말고 세션
0
850
2
DB 연동한 인가 부분에 대한 질문입니다!
0
265
1
Ajax방식도 똑같이 Session방식을 사용하는건가요?
0
308
1
Config 파일 생성 시 질문이 있습니다.
0
228
1
강사님 몇일동안 구글 검색만 100개 했는데도 이유를 모르겠습니다..
1
433
2
403 에러 뜹니다.
0
813
2
login_proc의 존재에 대한 간략한 설명입니다
0
277
1
top.html에 로그인 링크를 만들어서 로그인을 해봤습니다
0
288
2
안녕하세요. DB에 저장될 때 이해 안 가는 값이 있어서 질문드립니다!
0
191
1





