- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- redis
- Java
- 팀네이버 공채
- 책
- spring
- JPA
- 리뷰
- 프로젝트
- 만들면서 배우는 클린 아키텍처
- Project
- websocket
- EntityTransaction
- 스프링
- 후기
- network
- infra
- Spring Security
- 팀네이버
- SPRING JWT
- jenkins
- 캐싱전략
- 브랜치전략
- 젠킨스
- JWT
- SpringBoot
- LazyInitialization
- docker
- chrome80
- Kotlin
- container
목록JWT (3)
PPAK

제가 서버에 채택한 인증 방식은 JWT 를 활용한 Access Token 교환 방식입니다. 서버 측에서는 사용자가 정상적으로 로그인을 마치면 사용자 인증 정보를 포함하는 Access Token 과 이를 재발급할 수 있는 Refresh Token 을 생성하여 발급합니다. 이후에 클라이언트는 발급된 Access Token 을 서버에 제출하기만 하면 정상적인 사용자의 요청으로 간주될 수 있습니다. 해당 인증 방식을 구현하는 과정에서 여러가지 보안적인 측면을 고려하지 않을 수 없는데 가장 대표적으로 XSS, CSRF 공격에 대한 방어가 핵심이 될 수 있습니다. 본 포스팅 에서는 어떤 방식으로 토큰을 발행하고, 어디에 저장을 하는 것이 옳은가에 대한 고민과 결과를 적어보겠습니다. 이전 글에서는 CORS 허용 정책..

본 포스팅에서는 최근에 진행중인 프로젝트의 서버 설계, 구현 과정을 살펴보려고 합니다. 우선 api 서버를 구축하기 위해서 1. 인증/인가 2. JWT 사용(Authorization Header) 3. CORS 허용 등의 요구사항이 있었고 이를 적용하고 있는 방식을 설명하고자 합니다. 위 사진은 일반적인 Spring 서버의 요청 처리 구조를 나타내는 그림입니다. 저는 현재 기본 Spring Boot Application 에 1. Filter(Spring Security) 를 통해 인증/인가 2. Interceptor 를 통해 인가된 요청 헤더값 추출 3. Controller 에서 JWT 생성 및 발급을 수행하고 있습니다. Client 의 요청이 Filter -> Interceptor -> Controll..

기존에 스프링 시큐리티에 대해서 잠깐 공부하고 간단하게 실습해본 것이 전부인 상태에서 이번에 진행하는 프로젝트에 한번 적용을 해보려고 합니다. 기본적으로 스프링 시큐리티는 애플리케이션에서 인증/인가 에 대한 설정을 편리하게 도와주는 역할을 합니다. Controller 에서 인증 인가를 충분히 수행할 수 있지만 관심사의 분리 측면에서 역할이 확실히 구분됩니다. 1. Controller 는 사용자의 요청에 대한 서비스의 응답을 구성한다. 2. 인증과 인가는 Controller 까지 요청이 오지 않고도 충분히 수행할 수 있다. 따라서 Dispatcher Servelet 에 요청이 돌아오기 전에 인증과 인가를 수행하는 레이어를 스프링 시큐리티가 담당한다고 볼 수 있습니다. 위 사진은 전체적인 스프링 시큐리티의 ..