• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Session / 인증객체 / Security Context 관계가 궁금합니다.

22.04.04 23:31 작성 조회수 1.15k

0

안녕하세요.

항상 좋은 강의 감사드립니다!

 

하나 궁금한 것이 있어 글을 적게 되었습니다.

Session / 인증객체 / Security Context의 관계가 궁금합니다.

 

인증이 완료되면 인증객체가 만들어지고, 인증 객체가 Security Context에 저장되고, Security Context Holder에 Security Context가 존재되는 것으로 이해를 했습니다.

 

그렇다면 Session에는 정확히 어떤 것이 저장되는 것인지 알 수 있을까요? 예를 들어 Session에는 Security Context Holder가 저장되나요, 아니면 Security Context가 저장되나요, 아니면 인증객체가 저장되나요?  Security Context와 Session은 아예 서로 참조하지 않는 관계인 것으로 이해를 해야할까요?

 

모르는게 너무 많아 질문이 단순무식해서 죄송합니다. 답변 달아주시면 감사하겠습니다! 

답변 1

답변을 작성해보세요.

1

세션에는 SecurityContext 가 저장됩니다.

스프링 시큐리티에서는 SecurityContext  안에 Authentication 객체가 존재하는지의 유무를 체크해서 인증여부를 결정합니다.

그렇기 때문에 SecurityContext 는 사용자가 재접속하더라도 인증 당시의 데이터가 보존이 되어 있어야 합니다.

사용자가 인증처리가 완료된 후 다시 사이트를 접속했을 때 세션에 저장된 SecurityContext  를 꺼내어 와서 SecurityContextHolder 에 저장하게 되고 이는 전역으로 SecurityContext  를 참조할 수 있게 하는 원리가 됩니다.

강의에서도 설명하고 있으니 참고해 주시기 바랍니다.

채널톡 아이콘