Spring Boot: Tomcat 환경변수 설정
·
Spring/Spring 설정
SpringBoot에서 Tomcat에 환경변수를 설정해 보자 📌 서론 스프링부트를 사용하다 보면 application.properties나 application.yml에 환경변수(api키, db연결정보)를 적은 채로 github에 그대로 push 해서 코드를 노출하는 경우가 있는데 이것은 너무나도 보안적으로 위험하기 때문에 이것을 로컬환경에서 tomcat configuration으로 구성하는 방법에 대해 설명하도록 하겠다. 1. 스프링부트3에서 내장 Tomcat에 환경변수를 설정하는 방법 application.yml 확인 우리는 개발할때 application.properties 또는 application.yaml 파일에 스프링부트의 설정을 하게 되는데 이때 이 파일을 그대로 github에 올리면 우리의 ..
Spring JPA [SpringBoot3.1] - Querydsl 사용
·
Spring/JPA
이전 포스팅에서 querydsl적용을 했고 이번에는 repository를 만들어서 사용해 보겠다. 1. QuerydslConfig라는 클래스를 만들고 JPAQueryFactory Bean설정을 해준다. import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration @RequiredArgsConstructor publi..
Spring JPA [SpringBoot3.x.x] - Querydsl 적용하고 빌드하기
·
Spring/JPA
SpringBoot3버전에서 Querydsl을 적용하는법이 2버전과 다르게 변경되었다. 1. Build.gradle을 설정한다. 아래와 같이 querydsl설정을 해준다. QClass를 만들때는 스프링부트 2.x.x처럼 compileQuerydsl로 하는게 아니라 compileJava를 실행해서 진행한다.(그냥 빌드도됨) 이런 이슈는 gradle은 꾸준히 업그레이드 되고있지만 querydsl은 업데이트가 되지 않아서 그런것같다. plugins { id 'java' id 'org.springframework.boot' version '3.1.1' id 'io.spring.dependency-management' version '1.1.0' } group = 'com.jinan' version = '0.0...
Spring Boot 3.1 & Spring Security 6: 로그인 프로세스 및 JWT 토큰 동작 설명 (10편)
·
Spring/Spring Security
지금까지 만든 시큐리티의 동작을 설명하겠다. 1. 로그인 과정 로그인 페이지 접근: 사용자는 웹 브라우저에서 로그인 페이지(/login)에 접근한다. 로그인 페이지에는 사용자 이름과 비밀번호를 입력할 수 있는 폼이 있다. 로그인 요청: 사용자가 자신의 사용자 이름과 비밀번호를 입력하고 "Login" 버튼을 클릭하면, AJAX 요청을 통해 서버에 로그인 요청(/user/login)이 전송된다. 인증 필터 처리: CustomAuthenticationFilter는 로그인 요청을 가로챈다. 이 필터는 UsernamePasswordAuthenticationFilter를 확장하여 구현되었다. 요청에서 사용자 이름과 비밀번호를 추출하여 UsernamePasswordAuthenticationToken 객체를 생성한다...
Spring Boot 3.1 & Spring Security 6: 로그인 & 메인 페이지 컨트롤러 (9편)
·
Spring/Spring Security
로그인 뷰를 보여주고 action을 실행시킬 로그인 컨트롤러와 메인페이지를 보여주게될 메인 컨트롤러를 작성한다. 1. @Controller - 로그인, 메인페이지 컨트롤러 1-1. LoginController 이 코드는 사용자의 로그인 및 로그아웃을 관리하는 컨트롤러이다. Spring의 @Controller 어노테이션을 사용하여 웹 요청을 처리하는 클래스임을 나타낸다. @Slf4j @RequiredArgsConstructor @Controller public class LoginController { /** * [View] 로그인 페이지를 엽니다. */ @GetMapping("/login") public String login() { return "login"; } /** * [Action] 로그인 프로..
Spring Boot 3 & Security 6 시리즈: UserDetailsService, DTO 작성하기 (8편)
·
Spring/Spring Security
이번 포스트에서는 UserDetailsService, DTO 클래스를 작성해 보자 1. CustomUserDetailsService 코드 작성 1-1. 코드 작성하기 이 코드는 Spring Security의 사용자 인증 정보를 관리하는 UserDetailsService 인터페이스를 직접 커스텀해서 구현하여 사용자의 인증 정보를 로드하는 서비스를 정의하는 클래스다. @Slf4j @RequiredArgsConstructor @Service public class CustomUserDetailsService implements UserDetailsService { private final UserRepository userRepository; @Override public UserDetails loadUser..
Spring Boot 3 & Security 6 시리즈: JWT Util 클래스 작성 (7편)
·
Spring/Spring Security
JWT 유틸리티 클래스 작성하기 1. JWT - Util 클래스 작성하기 이 코드는 JWT(JSON Web Token)를 생성하고 검증하는 데 사용되는 TokenUtils 클래스에 대한 것이다. 클래스는 여러 메서드를 포함하고 있으며, JWT의 생성, 유효성 검증 및 관련 정보 추출과 같은 다양한 기능을 수행한다. @Slf4j @Component public class TokenUtils { private static final String jwtSecretKey = "thisIsASecretKeyUsedForJwtTokenGenerationAndItIsLongEnoughToMeetTheRequirementOf256Bits"; // jwtSecretKey를 바이트 배열로 변환하고, 이를 사용하여 HMAC..
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 인터페이스를 ..