Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[STMT-151] ✨ JWT 생성 및 검증 객체 구현 #14

Merged
merged 2 commits into from
Feb 14, 2024

Conversation

zxcv9203
Copy link
Collaborator

💁 해결 하려는 문제를 적어주세요

  • 서버에서 인증시 자체 발급되는 JWT 토큰을 생성하고 검증할 클래스가 필요

🤔 어떤 방식으로 해결했는지 적어주세요

  • JJWT 라이브러리를 사용하여 JWT 토큰을 생성하고 검증하는 로직 추가

@zxcv9203 zxcv9203 added the D-3 3일 전 까지 리뷰해주세요 label Feb 13, 2024
Copy link
Member

@05AM 05AM left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다! 코멘트 한번 확인 부탁 드립니다~!

Comment on lines +1 to +16
jwt:
issuer: "STUMEET"
secret: "c3R1bWVldC1zZXJ2ZXItand0LXNlY3JldC1rZXktZW5jb2Rl"
validate-time: 86400

spring:
jpa:
hibernate:
ddl-auto: update
show-sql: true

logging:
level:
org:
springframework:
security: DEBUG
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: 설정 파일은 레포지터리에 올라가지 않게 하는 것이 좋을 것 같습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋은 의견 감사합니다 :)

설정 파일 관리해서 다음과 같은 정해야할 부분이 존재하여 말씀드립니다.

  1. 환경변수를 어떻게 관리할 것인지 (.env export Secrets Manager)
  2. 설정 파일을 환경별로 분리 (application-prod.yml, application-local.yml와 같이 각 환경에 맞게 설정 분리)

좋은 의견 있으시면 편하게 말씀 부탁드립니다 :D

@github-actions github-actions bot added D-2 2일 전 까지 리뷰해주세요 and removed D-3 3일 전 까지 리뷰해주세요 labels Feb 13, 2024
Copy link
Contributor

@tngtied tngtied left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다. 수고하셨습니다.

@zxcv9203 zxcv9203 merged commit d906a56 into dev Feb 14, 2024
@zxcv9203 zxcv9203 deleted the STMT-151-domain-member branch February 14, 2024 13:30
05AM added a commit that referenced this pull request Feb 16, 2024
…인 api 구현 (#21)

* [STMT-151] ✨ 공통적으로 사용되는 생성 시간, 수정 시간 추가를 위한 추상 클래스 구현 (#10)

* [STMT-151] ✨ 공통적으로 사용되는 생성 시간, 수정 시간 추가를 위한 추상 클래스 구현

* [STMT-151] 🐛 설정 클래스를 명시하여 스프링 컨텍스트에서 관리하도록 설정

* [STMT-6] 👷 CI/CD를 위한 github-actions 추가

* [STMT-6] 👷 CI/CD를 위한 github-actions 추가

* [STMT-151] ✨ 로그인을 위한 멤버, OAuth 로그인 정보 모델링 (#11)

* [STMT-6] 🐛 도커 컨테이너 실행 전, 이전에 실행 중이던 컨테이너를 중지, 삭제하도록 수정 및 다수의 오타 수정

* [STMT-6] 💚 JDK 21 distribution temurin에 대한 CI/CD 자동화 테스트

* [STMT-6] 👷 CI/CD 자동화 워크플로우 완성

* [STMT-6] ✏️ 주석 제거

* [STMT-151] ✨ JWT 생성 및 검증 객체 구현 (#14)

* [STMT-151] ✨ JWT 생성 및 검증 객체 구현

* [STMT-151] ➕ JWT, OpenFeign, QueryDSL 의존성 추가

* [STMT-151] ✨ OAuth2 로그인/회원가입 기능 구현 (#16)

* [STMT-151] 🔧 QueryDSL 설정

* [STMT-151] ✨ API 공통 응답 객체 구현

* [STMT-151] ✨ 클라이언트에게 전달받은 Access Token을 이용하여 kakao에 유저 정보 요청 기능 구현

* [STMT-151] ✨ OAuth 로그인 정보를 관리하는 도메인 정의

* [STMT-151] ✨ 카카오 유저 정보 조회 응답 객체 정의

* [STMT-151] ✨ OAuth 회원가입/로그인 기능 필터 구현

* [STMT-151] ✨ OAuth 회원가입 / 로그인 인증 프로바이더 구현

* [STMT-151] ✨ JWT 인증 필터 구현

* [STMT-151] ✨ 권한 부족 및 미인증 유저가 요청시 예외발생에 대한 예외 핸들러 추가

* [STMT-151] ✨ 구현한 필터 시큐리티 필터 체인에 등록

* [STMT-151] ✨ 회원가입 추가정보 입력 API 구현

* [STMT-6] 👷 CI-CD workflow 수정 - 환경변수 설정 (#17) (#18)

- 파일 이름 변경
 - github-actions.yml -> ci-cd.yml
- gitignore에 application-secret.properties 파일 추가

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] 👷 ci-cd 워크플로우가 실패하는 원인 규명 및 문제 해결 (#19)

* [STMT-6] 👷 CI-CD workflow 수정 - 환경변수 설정 (#17)

- 파일 이름 변경
 - github-actions.yml -> ci-cd.yml
- gitignore에 application-secret.properties 파일 추가

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] ci-cd.yml event trigger 수정

* [STMT-6] ci-cd.yml 문법 오류 수정

step-Checkout에서 uses 앞 대쉬 삭제

---------

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] 🔧 개발 환경별 yml 설정 파일 작성 (#20)

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] 💚 CI/CD dev 테스트

* [STMT-6] prod 설정파일로 빌드하는 설정 추가

* [STMT-6] 💚 CICD 테스트용으로 event triger에 추가한 코드 삭제

branch `dev` 제외

* [STMT-6] 🔥 prod 설정 파일의 security logging 설정 코드 제거

* [STMT-6] 🔥 ci-cd 워크 플로우의 디버그 코드 제거

* [STMT-6] 🔥 ci-cd 워크 플로우 수정 - docker compose 배포 명령어

* [STMT-6] 🚀 docker-compose.yml 생성

---------

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>
Co-authored-by: tngtied <tngtied@gmail.com>
Co-authored-by: tngtied <75424805+tngtied@users.noreply.github.com>
05AM added a commit that referenced this pull request Feb 20, 2024
* [STMT-6, STMT-151] ✨👷 CI/CD를 위한 github actions workflow 구축 및 회원가입, 로그인 api 구현 (#21)

* [STMT-151] ✨ 공통적으로 사용되는 생성 시간, 수정 시간 추가를 위한 추상 클래스 구현 (#10)

* [STMT-151] ✨ 공통적으로 사용되는 생성 시간, 수정 시간 추가를 위한 추상 클래스 구현

* [STMT-151] 🐛 설정 클래스를 명시하여 스프링 컨텍스트에서 관리하도록 설정

* [STMT-6] 👷 CI/CD를 위한 github-actions 추가

* [STMT-6] 👷 CI/CD를 위한 github-actions 추가

* [STMT-151] ✨ 로그인을 위한 멤버, OAuth 로그인 정보 모델링 (#11)

* [STMT-6] 🐛 도커 컨테이너 실행 전, 이전에 실행 중이던 컨테이너를 중지, 삭제하도록 수정 및 다수의 오타 수정

* [STMT-6] 💚 JDK 21 distribution temurin에 대한 CI/CD 자동화 테스트

* [STMT-6] 👷 CI/CD 자동화 워크플로우 완성

* [STMT-6] ✏️ 주석 제거

* [STMT-151] ✨ JWT 생성 및 검증 객체 구현 (#14)

* [STMT-151] ✨ JWT 생성 및 검증 객체 구현

* [STMT-151] ➕ JWT, OpenFeign, QueryDSL 의존성 추가

* [STMT-151] ✨ OAuth2 로그인/회원가입 기능 구현 (#16)

* [STMT-151] 🔧 QueryDSL 설정

* [STMT-151] ✨ API 공통 응답 객체 구현

* [STMT-151] ✨ 클라이언트에게 전달받은 Access Token을 이용하여 kakao에 유저 정보 요청 기능 구현

* [STMT-151] ✨ OAuth 로그인 정보를 관리하는 도메인 정의

* [STMT-151] ✨ 카카오 유저 정보 조회 응답 객체 정의

* [STMT-151] ✨ OAuth 회원가입/로그인 기능 필터 구현

* [STMT-151] ✨ OAuth 회원가입 / 로그인 인증 프로바이더 구현

* [STMT-151] ✨ JWT 인증 필터 구현

* [STMT-151] ✨ 권한 부족 및 미인증 유저가 요청시 예외발생에 대한 예외 핸들러 추가

* [STMT-151] ✨ 구현한 필터 시큐리티 필터 체인에 등록

* [STMT-151] ✨ 회원가입 추가정보 입력 API 구현

* [STMT-6] 👷 CI-CD workflow 수정 - 환경변수 설정 (#17) (#18)

- 파일 이름 변경
 - github-actions.yml -> ci-cd.yml
- gitignore에 application-secret.properties 파일 추가

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] 👷 ci-cd 워크플로우가 실패하는 원인 규명 및 문제 해결 (#19)

* [STMT-6] 👷 CI-CD workflow 수정 - 환경변수 설정 (#17)

- 파일 이름 변경
 - github-actions.yml -> ci-cd.yml
- gitignore에 application-secret.properties 파일 추가

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] ci-cd.yml event trigger 수정

* [STMT-6] ci-cd.yml 문법 오류 수정

step-Checkout에서 uses 앞 대쉬 삭제

---------

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] 🔧 개발 환경별 yml 설정 파일 작성 (#20)

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] 💚 CI/CD dev 테스트

* [STMT-6] prod 설정파일로 빌드하는 설정 추가

* [STMT-6] 💚 CICD 테스트용으로 event triger에 추가한 코드 삭제

branch `dev` 제외

* [STMT-6] 🔥 prod 설정 파일의 security logging 설정 코드 제거

* [STMT-6] 🔥 ci-cd 워크 플로우의 디버그 코드 제거

* [STMT-6] 🔥 ci-cd 워크 플로우 수정 - docker compose 배포 명령어

* [STMT-6] 🚀 docker-compose.yml 생성

---------

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>
Co-authored-by: tngtied <tngtied@gmail.com>
Co-authored-by: tngtied <75424805+tngtied@users.noreply.github.com>

* [STMT-6] 🌱 Success Response 생성

* [STMT-6] 🌱 Error 세부사항 전달을 위한 클래스 생성

- Error : 일반적인 경우의 에러 메시지를 담는다.
- ErrorField : BindingResult에 들어있는 필드 validation, matching 등의 여러 에러 항목을 표현한다.

* [STMT-6] 🌱 Error Response 생성

* [STMT-6] 🌱 custom exception을 위한 BusinessException 생성

* [STMT-6] 🥅 GlobalExceptionHandler 생성

* [STMT-6] 🩹 Error 클래스 json index 삭제

* [STMT-6] 🧱 분리된 성공, 에러 응답을 ApiResponse로 병합

* [STMT-6] 🔊 Exception, BusinessException 발생 시 에러 스택 트레이스 로깅

* [STMT-6] 📦 공통 객체 패키지 구조 변경

- `ErrorCode`
 - `exception`-`error` -> `response`
- `BusinessException`
 - `exception` -> `exception`-`model`

---------

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>
Co-authored-by: tngtied <tngtied@gmail.com>
Co-authored-by: tngtied <75424805+tngtied@users.noreply.github.com>
05AM added a commit that referenced this pull request Feb 21, 2024
* [STMT-6, STMT-151] ✨👷 CI/CD를 위한 github actions workflow 구축 및 회원가입, 로그인 api 구현 (#21)

* [STMT-151] ✨ 공통적으로 사용되는 생성 시간, 수정 시간 추가를 위한 추상 클래스 구현 (#10)

* [STMT-151] ✨ 공통적으로 사용되는 생성 시간, 수정 시간 추가를 위한 추상 클래스 구현

* [STMT-151] 🐛 설정 클래스를 명시하여 스프링 컨텍스트에서 관리하도록 설정

* [STMT-6] 👷 CI/CD를 위한 github-actions 추가

* [STMT-6] 👷 CI/CD를 위한 github-actions 추가

* [STMT-151] ✨ 로그인을 위한 멤버, OAuth 로그인 정보 모델링 (#11)

* [STMT-6] 🐛 도커 컨테이너 실행 전, 이전에 실행 중이던 컨테이너를 중지, 삭제하도록 수정 및 다수의 오타 수정

* [STMT-6] 💚 JDK 21 distribution temurin에 대한 CI/CD 자동화 테스트

* [STMT-6] 👷 CI/CD 자동화 워크플로우 완성

* [STMT-6] ✏️ 주석 제거

* [STMT-151] ✨ JWT 생성 및 검증 객체 구현 (#14)

* [STMT-151] ✨ JWT 생성 및 검증 객체 구현

* [STMT-151] ➕ JWT, OpenFeign, QueryDSL 의존성 추가

* [STMT-151] ✨ OAuth2 로그인/회원가입 기능 구현 (#16)

* [STMT-151] 🔧 QueryDSL 설정

* [STMT-151] ✨ API 공통 응답 객체 구현

* [STMT-151] ✨ 클라이언트에게 전달받은 Access Token을 이용하여 kakao에 유저 정보 요청 기능 구현

* [STMT-151] ✨ OAuth 로그인 정보를 관리하는 도메인 정의

* [STMT-151] ✨ 카카오 유저 정보 조회 응답 객체 정의

* [STMT-151] ✨ OAuth 회원가입/로그인 기능 필터 구현

* [STMT-151] ✨ OAuth 회원가입 / 로그인 인증 프로바이더 구현

* [STMT-151] ✨ JWT 인증 필터 구현

* [STMT-151] ✨ 권한 부족 및 미인증 유저가 요청시 예외발생에 대한 예외 핸들러 추가

* [STMT-151] ✨ 구현한 필터 시큐리티 필터 체인에 등록

* [STMT-151] ✨ 회원가입 추가정보 입력 API 구현

* [STMT-6] 👷 CI-CD workflow 수정 - 환경변수 설정 (#17) (#18)

- 파일 이름 변경
 - github-actions.yml -> ci-cd.yml
- gitignore에 application-secret.properties 파일 추가

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] 👷 ci-cd 워크플로우가 실패하는 원인 규명 및 문제 해결 (#19)

* [STMT-6] 👷 CI-CD workflow 수정 - 환경변수 설정 (#17)

- 파일 이름 변경
 - github-actions.yml -> ci-cd.yml
- gitignore에 application-secret.properties 파일 추가

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] ci-cd.yml event trigger 수정

* [STMT-6] ci-cd.yml 문법 오류 수정

step-Checkout에서 uses 앞 대쉬 삭제

---------

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] 🔧 개발 환경별 yml 설정 파일 작성 (#20)

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>

* [STMT-6] 💚 CI/CD dev 테스트

* [STMT-6] prod 설정파일로 빌드하는 설정 추가

* [STMT-6] 💚 CICD 테스트용으로 event triger에 추가한 코드 삭제

branch `dev` 제외

* [STMT-6] 🔥 prod 설정 파일의 security logging 설정 코드 제거

* [STMT-6] 🔥 ci-cd 워크 플로우의 디버그 코드 제거

* [STMT-6] 🔥 ci-cd 워크 플로우 수정 - docker compose 배포 명령어

* [STMT-6] 🚀 docker-compose.yml 생성

---------

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>
Co-authored-by: tngtied <tngtied@gmail.com>
Co-authored-by: tngtied <75424805+tngtied@users.noreply.github.com>

* ✨ [STMT-146] S3 파일 업로드 인터페이스 구현

* 🚚 [STMT-146] 업로드한 file url을 받는 FileUrl 위치 변경

- domain이라기 보다는 외부 dto에 가깝기 떄문에 `port`-`out`으로 위치 변경

---------

Co-authored-by: zxcv9203 <41960243+zxcv9203@users.noreply.github.com>
Co-authored-by: tngtied <tngtied@gmail.com>
Co-authored-by: tngtied <75424805+tngtied@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
D-2 2일 전 까지 리뷰해주세요
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants