CS Study : Spring Security의 구조와 JWT 발급 과정에 대해 설명해주실 수 있을까요?

song yuheon·2023년 10월 18일
0

CS Study

목록 보기
20/50

Spring Security의 구조

Spring Security는 집의 보안 시스템이라고 보면 이해하기 쉽다.
방문객을 체크하고 특정 방에 들어갈 권한을 판단하는 보안 시스템의 구조가 Spring Security와 비슷하다.


1. SecurityFilterChain

방문객(사용자)이 문을 노크하면(웹 사이트에 요청) 이 필터 체인이 이를 먼저 접수한다.

2. Authentication

사용자의 정보를 확인한다.
"이 방문객(사용자)이 우리 집에 올 권한이 있는가?"를 검사한다.

3. SecurityContextHolder

인증이 완료되면 사용자의 정보를 잠시 저장해둔다.
마치 방문객의 정보를 일시적으로 보관하는 로그북처럼 말이다.

4. Authorization

이제 이 사용자가 집 안의 어느 방에 들어갈 수 있는지를 판단한다.
"방문객은 게스트 룸만을 갈 수 있다"라는 규칙을 확인하고 권한을 주는 것이다.


JWT의 발급과정

JWT 발급 받는 것은 놀이 동산에서 입장권을 받는 것과 같은
입장권의 역활을 한다고 볼 수 있다.


1. 로그인 요청

사용자가 아이디와 비밀번호로 입장권을 요청한다.

2. 인증 확인

사용자의 정보가 올바른지 확인한다.
Spring Security의 AuthenticationManager가 이 역할을 한다.

3. JWT 생성

올바른 사용자라면 입장권인 JWT를 생성한다.
이 토큰에는 사용자의 정보와 유효 기간 등이 포함되어 있다.

4. 응답 반환

생성된 JWT를 사용자에게 반환한다.

5. 저장 & 사용

사용자는 이 JWT를 이후의 요청에 포함시켜 자신을 증명한다.
서버는 이 JWT를 확인하고 유효하다면 요청을 처리하게 된다


profile
backend_Devloper

0개의 댓글