Spring Boot 3 & Security 6 시리즈: JWT 검증 인터셉터 작성하기 (6편)
·
Spring/Spring Security
JwtToken의 유효성을 검증할 인터셉터 클래스를 작성하자 프로젝트 구성은 아래의 포스트에 있다.👇🏻👇🏻 Spring Boot3에서 Spring Security6 사용하기: SecurityConfig 클래스 작성하기 (2편) SpringBoot에서 Spring Security를 사용하는 방법을 알아보자 Spring security6의 FilterChain방식👇🏻👇🏻 Spring Security6 - Authentication(인증) 코딩은 글쓰기라고 생각한다. 꾸준히 기록하며 내 개발 실력을 키 curiousjinan.tistory.com 1. JwtTokenInterceptor - 인터셉터 클래스 설정 jwtTokenInterceptor는 Spring의 HandlerInterceptor 인터페이스를 ..
Spring Boot 3 & Security 6 시리즈: AuthenticationProvider, 인증 핸들러 구현하기 (5편)
·
Spring/Spring Security
이번에는 시큐리티의 인증 제공자와 인증에 성공, 실패했을때 결과를 핸들링할 handler 클래스를 작성하자 1. 인증 제공자 클래스 작성 - CustomAuthenticationProvider 1-1. CustomAuthenticationProvider 클래스 작성 (인증 제공자) 이 코드는 CustomAuthenticationProvider라는 클래스로, 스프링 시큐리티의 AuthenticationProvider 인터페이스를 구현한 사용자 정의 인증 제공자이다. 이 클래스는 사용자의 인증을 처리하는 역할을 한다. @Slf4j @RequiredArgsConstructor public class CustomAuthenticationProvider implements AuthenticationProvider..
Spring Boot 3 & Security 6 시리즈: JWT 인증 필터 JwtAuthorizationFilter 작성(4편)
·
Spring/Spring Security
이번 포스트에서는 Jwt 인증 필터를 생성하고 Spring Security의 필터체인(FilterChain)에 연결하자 코드를 사용할때 import는 시리즈 2편에 작성된 구성을 확인해 보고 사용하는 것을 추천한다.(버전이 안맞아서 오류가 생기는 경우가 존재)👇🏻👇🏻 Spring Boot3에서 Spring Security6 사용하기: SecurityConfig 클래스 작성하기 (2편) SpringBoot에서 Spring Security를 사용하는 방법을 알아보자 Spring security6의 FilterChain방식👇🏻👇🏻 Spring Security6 - Authentication(인증) 코딩은 글쓰기라고 생각한다. 꾸준히 기록하며 내 개발 실력을 키 curiousjinan.tistory.com 1...
Spring Boot 3 & Security 6 시리즈: WebConfig 클래스 작성 (3편)
·
Spring/Spring Security
웹 설정을 추가로 정의하기 위해 WebMvcConfigurer를 구현해주는 WebConfig 클래스를 작성하자 1. WebConfig 설정하기 1-1. SSR(Server Side Rendering)전용 WebConfig 설정하기 WebMvcConfigurer를 구현하는 WebConfig 클래스를 작성한다. WebConfig는 웹 애플리케이션의 웹 설정을 정의하는 클래스다. 여기서는 인터셉터, 뷰 컨트롤러, 정적 리소스 핸들러 등을 설정한다. @Slf4j @RequiredArgsConstructor public class WebConfig implements WebMvcConfigurer { private final JwtTokenInterceptor jwtTokenInterceptor; @Overrid..
Spring Boot 3 & Security 6 시리즈: SecurityConfig 클래스 작성하기 (2편)
·
Spring/Spring Security
SpringBoot에서 Spring Security를 사용하는 방법을 알아보자📌 서론Spring Boot 3 프로젝트에서 Thymeleaf와 함께 JWT (JSON Web Token) 인증 방식을 적용했다. 일반적으로, JWT는 클라이언트 사이드 렌더링(CSR) 환경인 React, Vue, Android, iOS 앱에서 주로 사용된다. 이 방식에서 클라이언트는 인증에 필요한 정보를 담은 토큰을 사용하여 서버와 인증을 수행한다. 반면, 서버 사이드 렌더링(SSR) 환경에서는 주로 세션을 통한 인증 방식이 일반적이다. 이번 프로젝트에서는 SSR 환경에도 JWT를 적용해 본 결과, 서버가 페이지를 렌더링 하면서도 JWT를 통한 인증이 가능함을 확인했다. 지금부터 그 내용을 공유한다.Spring securit..
Spring Boot 3 & Security 6 시리즈: JWT 로그인 폼 구현 (1편)
·
Spring/Spring Security
Spring Security를 구현하기 전에 앞으로 사용할 JWT 토큰이 어떤 것인지에 대해서 알아보자 📌 서론 JWT (JSON Web Token)는 웹에서 정보를 안전하게 전송하기 위한 컴팩트하고 독립적인 방식을 제공하는 토큰이다. JWT는 세 부분으로 구성되며, 각 부분은 점(.)으로 구분된다. 아래의 링크에서 jwt 토큰을 Encoded, Decoded 해볼 수 있다. JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. jwt.io 1. JWT란 Header: Header는 JWT의 메타데이터를 포함하며, 주로 두 가지 정보를 담..
@ControllerAdvice, @RestControllerAdvice - 중앙집중 예외처리
·
Spring/Spring 기초 지식
@ControllerAdvice를 사용한 중앙집중 예외처리 0. 패키지 구조 1. ErrorCode를 정의한다. Enum 타입으로 ErrorCode 클래스를 정의했다. 이렇게 관리하면 커스텀한 에러처리를 할수가 있다. 우선 나는 status, code, message를 필드로 선언했고 이 모든것들을 생성자로 받도록 설정했다. status에는 우리가 자주보는 400번대 500에러가 있고 code에는 내가 직접 지정한 커스텀 에러코드를 넣어줬다. 마지막으로 message에는 알아보기 쉽게 한글에러 메시지를 넣어줬다. import lombok.AllArgsConstructor; import lombok.Getter; import org.springframework.http.HttpStatus; /** * 커스..
스프링은 Singleton 패턴을 어떻게 활용할까?
·
Spring/Spring 기초 지식
Singleton 패턴은 객체지향 프로그래밍에서 자주 사용되는 디자인 패턴으로, 스프링 프레임워크의 핵심적인 동작 원리 중 하나입니다. 이번 글에서는 Singleton 패턴의 개념과 스프링에서 이를 어떻게 활용하는지에 대해 자세히 알아보겠습니다.  Singleton 패턴이란?Singleton 패턴은 클래스의 인스턴스를 단 하나만 생성하여, 애플리케이션 전체에서 이를 공유하는 디자인 패턴입니다. 이 방식은 메모리 효율성과 데이터 일관성을 보장하며, 전역적으로 접근 가능한 리소스를 관리할 때 유용합니다. Singleton 패턴의 주요 특징유일한 인스턴스: 동일한 클래스의 인스턴스는 애플리케이션에서 한 번만 생성됩니다.전역 접근 가능: 애플리케이션 어디에서든 동일한 인스턴스에 접근할 수 있습니다.메모리 절약:..