데브허브 | DEVHUB | Build an Event Ticket Platform with Spring Boot - Part 5 - Intermediate ProjectBuild an Event Ticket Platform with Spring Boot - Part 5 - Intermediate Project
- Spring Boot에서 JWT(JSON Web Token)를 사용하여 인증된 사용자를 데이터베이스의 사용자 엔티티로 자동 생성하는 방법을 설명합니다. 🔑
- REST API와 처음 상호작용할 때 사용자를 자동으로 생성하는
UserProvisioningFilter를 구현하며, 이는 이벤트 생성 기능의 전제 조건입니다. ⚙️
UserProvisioningFilter는 OncePerRequestFilter를 확장하고, doFilterInternal 메서드에서 JWT로부터 Keycloak ID, 이름, 이메일을 추출하여 사용자를 생성하거나 업데이트합니다. 🕵️♀️
UserRepository 인터페이스를 생성하여 사용자 저장 기능을 제공하며, User 엔티티에서 @Builder 어노테이션은 컬렉션 초기화 및 JPA 감사 어노테이션과의 잠재적 충돌로 인해 제거되었습니다. 💾
SecurityConfig 클래스를 통해 Spring Security 필터 체인을 구성하며, 모든 요청이 인증되도록 설정하고, REST API의 특성을 고려하여 CSRF를 비활성화하며, 세션 관리를 STATELESS로 설정합니다. 🛡️
UserProvisioningFilter를 BearerTokenAuthenticationFilter 뒤에 추가하여 인증 객체가 존재한 후에 사용자 프로비저닝이 이루어지도록 합니다. ➡️
- 엔티티의
created_at 및 updated_at 필드가 자동으로 채워지도록 JPAConfiguration 클래스에 @EnableJpaAuditing 어노테이션을 추가하여 Spring의 JPA 감사 기능을 전역적으로 활성화합니다. ⏰
- Spring Boot 백엔드 및 React 프론트엔드 소스 코드를 DevT에서 무료로 다운로드할 수 있습니다. 🔗