[SpringBoot] 스프링부트 프로젝트 시작하기 - 6. 토큰 이용하여 인가된 사용자 걸러내기
·
Spring
버전SpringBoot 3.3.0Java 17JWT 0.12.5목표토큰을 통해 인가된 사용자 구분하기Deprecated 된 함수 사용하지 않기구현이전 포스팅에서 로그인 시 토큰을 발행하는 부분까지 구현을 했다. 이번 포스팅에서는 해당 토큰을 이용하여 회원정보 요청을 보내고, 인가된 사람에게만 정보를 반환하는 부분을 구현해본다.MemberInfoResponsepackage com.study.springStarter.member.controller.response;import com.study.springStarter.member.entity.Member;import lombok.Data;@Datapublic class MemberInfoResponse { private String loginId; ..
[SpringBoot] 스프링부트 프로젝트 시작하기 - 5. Security 설정하고 로그인 확인하기
·
Spring
버전SpringBoot 3.3.0Java 17JWT 0.12.5목표SpringSecurity + JWT 적용하기토큰을 통해 인가된 사용자 구분하기Deprecated 된 함수 사용하지 않기구현SecuriryConfigpackage com.study.springStarter.common.authority;import lombok.RequiredArgsConstructor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.web.builders.HttpSecurity;..
[SpringBoot] 스프링부트 프로젝트 시작하기 - 4. JWT 토큰 생성하기
·
Spring
버전SpringBoot 3.3.0Java 17JWT 0.12.5목표SpringSecurity + JWT 적용하기토큰을 통해 인가된 사용자 구분하기Deprecated 된 함수 사용하지 않기구현의존성 추가`build.gradle`// Securityimplementation 'org.springframework.boot:spring-boot-starter-security'testImplementation 'org.springframework.security:spring-security-test'//JWTimplementation 'io.jsonwebtoken:jjwt-api:0.12.5'runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.5'runtimeOnly 'io.jsonwe..
[SpringBoot] 스프링부트 프로젝트 시작하기 - 3. Validation 이용하여 예외처리하기
·
Spring
@Datapublic class MemberRegisterRequest { private String loginId; private String password; private String email; private String name; private LocalDate birthDate;}위 코드는 회원가입 시 Request로 받는 데이터이다. 보통의 데이터베이스는 제약조건이 걸려있다. 그러므로 서비스에서는 들어온 데이터가 올바른지 유효성 검사를 해주어야 한다.아이디의 길이 제한이라던가 이메일 형식이 맞게 들어왔는지, 이름에 특수기호가 포함되어있지 않은지 등등이러한 제약조건을 검사하는 방법은 코드상에서 검사하는 방법도 있지만 그럴 경우엔if(request.getLoginId(..
[SpringBoot] 스프링부트 프로젝트 시작하기 - 2. JPA 활용하여 회원가입 만들기
·
Spring
시큐리티를 적용하기 전 데이터베이스를 연결하고 JPA를 활용하여 RestAPI 통신까지 확인해보도록 하자.설정DB연결과 API 통신 기능 확인을 위해 간략하게 회원가입 기능을 구현한다.의존성 추가dependencies { ... 생략 ... // Jpa implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // MySQL runtimeOnly 'com.mysql:mysql-connector-j' // env implementation 'io.github.cdimascio:dotenv-java:2.2.0' ... 생략 ...}`build.gradle`에 JPA와 데이터베이스, 그리..
[SpringBoot] 스프링부트 프로젝트 시작하기 - 1. 프로젝트 생성
·
Spring
스프링 프로젝트를 다시 시작하려고 프로젝트를 생성했는데, 2.x 버전의 생성이 지원 종료되었다. 이로 인해 기존 Security나 Querydsl 등의 적용 방법에 차이가 생겼고, 이러한 변화를 정리하여 기본 프로젝트를 만들어두고자 한다.프로젝트 진행 환경JAVA 17(Azul Zulu version 17.0.11)SpringBoot 3.3.0MySQLIntelliJMac프로젝트 생성https://start.spring.io/프로젝트 생성은 start.spring.io를 이용한다.Gradle를 이용할 설정을 할 것이기 때문에 Gradle을 선택하고 사용할 언어와 버전을 선택한다.Group은 보통 회사, 학교 등을 적지만 혼자 공부하는 용도이기 때문에 원하는대로 작성을 하였다.오른쪽에서는 의존성을 추가할 ..