이 포스팅은 (1) 스프링 시큐리티 - 알아두어야 할 세 가지 개념에서 이어지는 글입니다.
서론
세션은 다들 아시다시피 본디 하나의 서버를 운용할 때를 상정하고 나온 개념입니다. 다시 말씀드립니다. 프론트엔드와 백엔드가 하나의 서버에 있을 때 세션을 보통 사용한다고들 말합니다. 저도 처음에 JWT같이 다른 인증 시스템을 만들어 볼 때 혼동이 왔었습니다. 요즘 프론트-엔드와 백-엔드의 서버를 나누다 보니 세션도 나누는 것인가? 하구요. 세션을 개발하기 전에 꼭 잊지 말아야 할 사항이 바로 본디 세션은 하나의 서버에서 운용하도록 설계가 되어졌다 입니다. 이 가정을 바탕으로 글을 쓰도록 하겠습니다.
(당연하게도 지금은 여러 서버에서 세션을 운용하는 방법이 있습니다! 레디스같은 하나의 인메모리에서 세션을 관리한다던지, 세션 서버를 하나 만들어두고 관리한다던지같은 방법들이 있죠. 하지만 예를 들어 servlet이 서버에서 동적 페이지 생성을 하기 위해 탄생했다는 사실만 봐도 하나의 서버에서 프론트엔드와 백엔드를 운용하는 것을 상정했다는 사실을 쉽게 알 수 있습니다.)
이전 글에서 시큐리티에는 `Filter Chain`과 `Security Context`라는 개념이 있다고 했습니다. 이 두 가지를 이용해서 로그인을 통해 세션을 필터링하고, `Security Context`에 세션을 유지시키도록 설정하는 코드들을 쭉 나열해서 설명해 보겠습니다.
세션 Filter Chain 설정
(작성중)
이 글의 실습 내용을 아래 깃허브 링크에서 만나보실 수 있습니다. 제 글이 스프링 세션 개발을 하실 때 도움이 되셨으면 좋겠습니다.
https://github.com/tkddn204/spring-security-auth-example/tree/main/auth-mvc-session
'Study > Spring' 카테고리의 다른 글
(3) 스프링 시큐리티 - JWT 인증 방식 (1) | 2024.02.05 |
---|---|
(1) 스프링 시큐리티 - 알아두어야 할 세 가지 개념 (0) | 2024.01.30 |