Inflearn brand logo image

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

이얏님의 프로필 이미지
이얏

작성한 질문수

스프링 시큐리티

9) 동시 세션 제어, 세션 고정 보호, 세션 정책

autentication vs session

작성

·

199

3

안녕하세요 선생님! 많은 질문해서 죄송합니다.

갑자기 드는생각이 session의 역할과 autentication의 역할이 너무 같다생각해서 여쭤봅니다. 물론 저장소가 다르다는 것은 알고있는데 뭔가 역할이 똑같아서 굳이.. 왜 있는지 이해가가질않습니다.

둘 차이가 뭘까요? 둘이 왜 같이 있나요?

답변 1

5

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

Session 과 Authentication 은 개념이 완전히 틀립니다.

Session 은 http 프로토콜에서의 클라이언트와 서버간의 상태유지를 위해 처리되는 개념이고 세션이 만료되기 전까지는 전역적으로 참조가 가능한데 비해 Authentication 은 사용자의 인증정보를 저장하는 객체이며 빈의 Scope(싱글톤, 프로토타입 등..) 혹은 객체 생성에 따라 생명주기가 정해져 있을 뿐입니다.

인증관련 관계도를 보면 이렇습니다.

Session > SecurityContext > Authentication > UserDetials 입니다.

즉 사용자가 로그인 후 인증을 받게 되면 인증정보를 UserDetials 에 담고 UserDetials 는 Authentication 에 담고 Authentication 은 SecurityContext 에 담고 SecurityContect 는 Session 에 담는 식으로 처리 됩니다.

Session 은 클라이언트가 전역적으로 데이터를 접근할 수 있는 개념이고 Authentication 은 세션안에 포함되어 필요시 꺼내어 사용할 수 있는 개념입니다.

최종적으로는 Authentication 에 저장되어 있는 UserDetails 타입의 user 객체를 참조하는 것이 핵심이겠지만 각 클래스마다 하는 역할과 위치가 서로 다른 동시에 서로 연계되어 사용되고 있습니다

강의 섹션 2 번째에서 3, 4, 5 번 강의에 자세하게 설명하고 있으니 참고해 주시기 바랍니다.

이얏님의 프로필 이미지
이얏

작성한 질문수

질문하기