새소식

Java/Spring

Spring - Spring Security 6 + JWT 로그인, 로그아웃(1편 - 기본 세팅)

  • -

개요

마음에 드는 설명글을 찾지 못해 거의 일주일의 시간을 잡아먹은 Spring Security 6 + JWT 로그인, 로그아웃 기능 구현을 완료했다.
정리가 꼭 필요한 과정인 것 같아 포스팅을 하기로 했다.

이 글은 그 포스팅 중 첫번째 글인 기본 세팅에 대한 설명 글이다.


버전

- Spring boot : 3.3.1
- Spring Security : 6.3.1
- jjwt : 0.11.5
- 설계 방식 : DDD (Domain-Driven Design)

필요한 환경변수 세팅값

1. jwt.accessSecret - 엑세스 토큰 시크릿 키
2. jwt.refreshSecret - 리프레시 토큰 시크릿 키
3. jwt.accessTokenExpire - 엑세스 토큰 만료 시간
4. jwt.refreshTokenExpire - 리프레시 토큰 만료 시간

의존성 설치(gradle)

// spring security
implementation 'org.springframework.boot:spring-boot-starter-security'

// 롬복
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

// jwt
implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.5'

// json
implementation 'com.google.code.gson:gson'

// validation
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.5.2'

// postgreSQL
implementation group: 'org.postgresql', name:'postgresql', version: '42.2.19'

파일 구조

/src/main/java/project
├── global
│   ├── config
│   │   └── security
│   │        └── SecurityConfig.java
│   └── entity
│        └── AuditingFields.java
├── jwt
│   ├── entity
│   │    └── Token.java
│   ├── filter
│   │    └── TokenAuthenticationFilter.java
│   ├── infrastructure
│   │    ├── CustomUserDetails.java
│   │    └── JwtAuthenticationToken.java
│   ├── repository
│   │    └── TokenRepository.java
│   ├── service
│   │    ├── CustomUserDetailsService.java
│   │    └── TokenService.java
│   └── util
│        └── JwtTokenizer.java
└── user
    ├── controller
    │   └── UserController.java
    ├── dto
    │   ├── UserJoinDto.java
    │   ├── UserLoginDto.java
    │   └── UserLoginResponseDto.java
    ├── entity
    │   ├── Authority.java
    │   └── User.java
    ├── repository
    │   └── UserRepository.java
    └── service
        └── UserService.java

다음 글

 

Spring - Spring Security 6 + JWT 로그인, 로그아웃(2편 - global 파일)

개요Spring Security 6 + JWT 로그인, 로그아웃 과정의 두번째 글인 global 패키지에 대한 글이다.파일 구조/src/main/java/project├── global│ ├── config│ │ └── security│ │ └── SecurityConfig.java│

dev-kimchi.tistory.com

JWT 시크릿 키 생성 방법

 

JWT - JWT 시크릿 키 생성

개요spring security + jwt 기초 세팅을 하던 중 블로그를 둘러보면 다들 jwt 시크릿 키가 있는데 어디서 만드는 지 몰라 찾아보았다.jwt 공식 사이트에서 만들어주는 건가 했는데 찾아본 결과 그냥 마

dev-kimchi.tistory.com

 

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.