19. JWT 프로젝트 세팅
by 볼빵빵오춘기새 프로젝트 만들기
- 기존 그 전 프로젝트에서는 gradle-kotlin으로 만들었으나 이번엔 동영상 강의와 같게 maven으로 만들어보았다.
- OAuth2 Client 는 dependencies안한다.
why? JWT에서 OAuth2를 사용할려면 그 전에 배웠던 내용이 필요없기 때문에. 즉, 다른 방식으로 구현해야하기 때문이다.
JWT Dependencies 하기
https://mvnrepository.com/ 사이트에 들어가기
(mvnrepository : 자바라이브러리가 모여있는 사이트이다.)
클릭하여 복사한다.
⇒ 여기서 JWT 라이브러리를 쓰는이유는 JWT토큰을 우리가 base64를 인코딩하여 직접 만들어도 되지만 라이브러리가 있으므로 어렵게 만들 필요없이 사용한다.
JWT 라이브러리를 이용하여 헤어, 페이로드, 시그니처를 만들예정이다.
시그니처 같은 경우 헤더+페이로드+ 시크릿값인데 이 헤더+페이로드+ 시크릿값을 변수에 넣어 HS256으로 암호화를 해서 그걸 다시 base64로 인코딩을 한다.(안해도 되긴 함, 여기서는 시크릿값은 “코스”라고 했다.)
pom.xml
https://mvnrepository.com/ 에서 복사한 내용을 pom.xml에 <dependencies>~</dependencies> 사이에 넣어준다.
<dependencies>
<!-- https://mvnrepository.com/artifact/com.auth0/java-jwt -->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.19.2</version>
</dependency>
</dependencies>
더보기
pom.xml 전체 코드
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.17</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.cos</groupId>
<artifactId>jwt</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>jwt</name>
<description>JWT Project</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.auth0/java-jwt -->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.19.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<builder>paketobuildpacks/builder-jammy-base:latest</builder>
</image>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
Error 발생
pom.xml에 mavenrepository에서 추가한 JWT라이브러리가 빨간글씨가 되면서 error가 발생했다.
'강의 따라하기 > JWT' 카테고리의 다른 글
21. JWT를 위한 security 설정 (0) | 2024.08.25 |
---|---|
20. JWT위한 yml파일 세팅 (0) | 2024.08.25 |
18. JWT 구조이해 (0) | 2024.08.24 |
17. JWT를 이해하기전 RFC문서란 (0) | 2024.08.24 |
16. JWT를 이해하기 전 RSA에 대해서 알아보자 (0) | 2024.08.24 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기