본문 바로가기

전체 글10

[Youtube] Spring boot 3.0 - Secure your API with JWT Token 해석 및 프로젝트 적용 기록(4) JWT service에서 정보를 추출하는 방법에 대해서 보여드리겠습니다.JWT 토큰을 조작하여 토큰에서 토큰을 검증하는 정보를 추출하는 등의작업을 수행하려면 애플리케이션에 새로운 종속성을 포함해야 합니다.모든 서비스를 구현하고 코드에 너무 깊이 빠져들기 전에먼저  JWT  토큰이 무엇인지 이해해 보겠습니다.JWT 토큰은 당사자 간에 전송할 claim을 나타내는 간결한 URL 저장 수단인 Json 웹 토큰의 약자입니다.  JWT는 세 부분으로 구성되어 있습니다.header, payload와 signature가 있습니다.header에는 JWT와 같은 토큰의 유형입니다.JWT는  hmac이나 sh-250, sh-256 또는RSA와 같은 로그인 알고리즘이 사용되고 있습니다.토큰의 두 번째 부분은  claim를 .. 2025. 2. 12.
[Youtube] Spring boot 3.0 - Secure your API with JWT Token 해석 및 프로젝트 적용 기록(3) 이 JWT  인증 필터 내에서 가장 먼저 하는 일은 JWT 토큰이 있는지 확인하는 것입니다.우선 첫 번째로, authHeader String을 만들 것입니다.왜냐하면 우리가 콜을 만들 때, 헤더 내에 JWT 인증 토큰을 전달해야 하기 때문에,이 토큰은 Authorization이라는 헤더 내에 있어야 합니다.여기서 우리가 해야 할 일은 이 헤더를 추출하는 것입니다.따라서 이 인증 헤더는 우리 요청의 일부이며,request를 통해 getHeader라는 메서드를 호출할 수 있으며헤더 내에서 헤더 이름을 전달하기만 하면 됩니다.Bearer 토큰은 항상 Bearer 키워드로 시작합니다.HttpServletRequest란?Java 웹 애플리케이션을 개발할 때, HTTP 요청을 처리해야 하는 경우가 많다.HttpSe.. 2025. 1. 30.
[Youtube] Spring boot 3.0 - Secure your API with JWT Token 해석 및 프로젝트 적용 기록(2) 필터에는 여러 가지 옵션이 있지만 여기 스키마에서 볼 수 있듯이 요청을 받을 때마다 이 필터가 활성화되기를 원합니다.따라서 사용자가 요청을 보낼 때마다 필터가 꺼지고 원하는 작업을 모두 수행할 수 있기 때문에이 필터는 요청 필터당 한 번씩 호출되는 클래스를 확장해야 합니다.public class JwtAuthenticationFilter extends OncePerRequestFilter {} 이름에서 알 수 있듯이 각 요청마다 하나씩 필터가 될 것이므로데이터 소스를 다운로드하고 여기에서 요청당 한 번씩 확인할 수 있습니다.public abstract class OncePerRequestFilter extends GenericFilterBean {} public abstract class GenericF.. 2025. 1. 28.
[Youtube] Spring boot 3.0 - Secure your API with JWT Token 해석 및 프로젝트 적용 기록(1) https://youtu.be/BVdQ3iuovg0?si=Pwj-tPf0dIx-eGqgCourse of learning you need to know about using Spring Security and JSON Web Tokens(JWT) to secure your applications      모든 일의 시작은 customer나 client가 우리의 backend-system에 HTTP request를 보내는 것부터 입니다. Apache Tomcat 내장 서버에서 실행되는 Spring boot 컨테이너   스프링 어플리캐이션 내에서 가장 먼저 실행되는 것은 필터이므로 필터를 만들때마다 필터가 어플리케이션내에서 가장 먼저 실행된다는 사실을 알아 차리고 기억해야 합니다. 이 경우 가장 먼저 실행되는.. 2025. 1. 15.
스프링 record 성능 향상은? 본 글은https://youtu.be/Z68yfppsBfA?si=75FhdH21pnTOE_m-  를 참고하여 작성하였습니다.  프로젝트를 진행하면서 롬복을 활용한 DTO가 아닌 record를 적용하였기 때문에 성능에 대한 고민이 있었다. 왜 record를 사용해야 하지?란 의문으로 글을 작성하게 되었다.  record란?java 16에서 공개된 새로운 클래스 타입 특징불변 객체 (final 필드로 생성자 초기화 후 변경 불가, 즉 set 안됨)생성자, getter, hashCode, equals, toString 자동 제공상속 불가 @Builderpublic record MemberServiceCreateRequest( String email, String password, .. 2025. 1. 9.
CORS fillter VS WebMvcConfigurer.addCorsMappings CORS fillter@Configuration@EnableWebSecurity@RequiredArgsConstructorpublic class SecurityConfig { @Bean public CorsConfigurationSource corsConfigurationSource() { CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowedOrigins(List.of("http://localhost:3000")); configuration.addAllowedMethod("*"); configuration.addAllowedHeader("*"); .. 2025. 1. 2.