Home [Spring Security JWT] 기본세팅
Post
Cancel

[Spring Security JWT] 기본세팅

이 게시글은 유튜브 개발자 유미님의 무료강의 스프링 시큐리티 JWT 1, 2, 4 : 프로젝트 생성 및 JWT 의존성 추가을 수강하며 공부한 내용을 담고있습니다.
이 게시글은 공부한 내용을 제가 보기 편하게 정리한 내용이므로 정확한 정보는 위 영상을 시청해주세요.

이 게시글은 기본적인 Spring 기본 실습을 해봤다는 가정하에 기초적인 설명은 생략되어 있습니다.
또한 실습을 따라가며 기본적인 JWT 사용방법을 학습하기에 상세한 원리와 설명은 없는 경우가 있습니다.

프로젝트 생성

https://start.spring.io/ 스프링 스타터에서 자신의 버전에 맞도록 설정을 한 뒤 의존성에 다음을 추가한다.

  • Lombok
  • Spring Web
  • Spring Security
  • Spring Data JPA
  • MySQL Driver

설정을 완료했으면 Generate 버튼을 클릭한다. zip 파일이 다운로드 될텐데 압축해제 한다.
압축해제 후 안에 build.gradle 파일이 있다.
IntelliJ 에서 open 을 클릭한 뒤 build.gradle 을 선택하여 열어준다.

Lombok, Spring Web, Spring Data JPA, MySQL Driver 에 대한 것을 알고있다고 생각하고 넘어간다.
프로젝트를 실행시킬 때 DB 연결이 안되어 있어서 오류가 발생할텐데, 해당 의존성을 주석처리하거나 미리 DB에 연결시켜놓는다.

주석처리 방법

build.gradle 에 가서 다음 두 개를 주석처리한다.

  1. implementation ‘org.springframework.boot:spring-boot-starter-data-jpa’
  2. runtimeOnly ‘com.mysql:mysql-connector-j’

그리고 코끼리 버튼을 눌러서 변경사항을 적용한다.

JWT 필수 의존성 추가

JWT 는 0.11.5 버전과 0.12.3 버전 두 개가 존재하는데, 두 버전의 차이가 크다. 내부적으로 구현이나 메서드 이름이 달라서 버전 사용에 주의해야 한다.

1
2
3
implementation 'io.jsonwebtoken:jjwt-api:0.12.3'
implementation 'io.jsonwebtoken:jjwt-impl:0.12.3'
implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3'

build.gradle 의 dependency 에 위 세줄을 추가한다.
코끼리 버튼을 눌러 변경사항을 적용한다.

Controller 생성

1
2
3
4
5
6
7
8
@Controller
@ResponseBody
public class MainController {
    @GetMapping("/")
    public String mainP() {
        return "Main Controller";
    }
}
1
2
3
4
5
6
7
8
@Controller
@ResponseBody
public class AdminController {
    @GetMapping("/admin")
    public String adminP() {
        return "Admin Controller";
    }
}

위 두 컨트롤러를 작성하고 프로젝트를 실행해본다. 딱히 로직을 작성한게 없으므로 오류가 발생하지 않아야 정상이다.
기본적인 Spring MVC 는 알고있다는 가정하에 진행되므로 위 코드에 대해선 설명하지 않는다.

POSTMAN 설치

GET, POST 요청 및 header 와 body 를 커스텀해서 요청할 수 있게 해주는 프로그램이다.
POSTMAN 과 동일한 기능을 하는 프로그램을 이미 사용중이면 설치할 필요는 없다.
로그인을 하면 결제 plan 이 나오는데 그 화면에서 잘 찾아보면 작은 글씨로 start with free plan(맞나?)이 작은 글씨로 있다.

Test

사진1
사진2

POSTMAN 에서 localhost:8080/ 로 GET 요청을 보내어 return 값이 정상적으로 오는지 테스트 해본다.



다음 포스팅 : Config 클래스 작성

This post is licensed under CC BY 4.0 by the author.

Bean Scope

[Spring Security JWT] Config 클래스 작성