Skip to content

Conversation

@7zrv
Copy link
Collaborator

@7zrv 7zrv commented Nov 27, 2024

📌 과제 설명

환경변수 추가 커밋입니다.

👩‍💻 요구 사항과 구현 내용

✅ PR 포인트 & 궁금한 점

7zrv added 2 commits November 27, 2024 15:43
- 잠재적 에러 예방을 위한 개행 추가
- OAuth 연동을 위한 환경변수 추가
@7zrv 7zrv self-assigned this Nov 27, 2024
@7zrv 7zrv changed the title Cicd/ 환경 변수 추가 CICD/ 환경 변수 추가 Nov 27, 2024
@sonarqubecloud
Copy link

@m-a-king
Copy link
Collaborator

감사합니다

@7zrv 7zrv merged commit ab20dd4 into main Nov 27, 2024
2 checks passed
@7zrv 7zrv deleted the cicd/add-env branch November 27, 2024 06:50
m-a-king pushed a commit that referenced this pull request Nov 27, 2024
* cicd: 환경변수 추가

- OAuth 연동을 위한 환경변수 추가
m-a-king added a commit that referenced this pull request Nov 27, 2024
* refactor(package): 패키지 이동

* style(ApiResponse): 불필요한 개행 제거

* feat(application.yml): front, back root url 추가

* refactor(package): 패키지 이동

* feat(cookie): 쿠키 삭제(덮어씌우기), 토큰 타입 추가(SIGNOUT), 파일명 변경

* feat(RefreshToken): 리프레시 토큰 삭제 수정

- 리프레시 토큰 삭제의 파라미터를 엑세스 토큰에서 사용자 ID로 변경
- 리프레시 토큰이 존재하지 않아도 로그아웃이 가능하도록 로직 수정
  - 리프레시 토큰이 없는 상태에서 로그아웃이 불가능한 것은 비정상적인 동작으로 판단
- 레포지토리에서 사용자 ID로 리프레시 토큰을 찾는 메서드 추가

* feat(SignOut): 로그아웃 로직 구현 및 리프레시 토큰 삭제 처리

- 로그아웃 시 액세스 토큰 쿠키를 삭제(덮어씌우기)하는 로직 추가
- 리프레시 토큰을 사용자 ID를 기반으로 삭제하도록 처리

* test(CookieService): 액세스 토큰 설정 및 삭제 로직 테스트 추가

- 액세스 토큰 설정 동작 검증
  - 토큰 값, HttpOnly, Secure, Path 등 쿠키 속성 확인
- 액세스 토큰 삭제 동작 검증
  - 쿠키 값에 SIGNOUT이 포함된 것을 확인
  - 쿠키 값이 삭제(Max-Age=0)되었는지 확인

* feat(OAuth): OAuth URL 생성 서비스 구현

- OAuth 인증 URL을 동적으로 생성
- 백엔드 Root URL과 OAuth Provider 이름을 조합하여 URL 생성
  - /oauth2/authorization/{provider} 형태의 URL 반환 로직 구현
  - 환경에 따라 백엔드 Root URL을 설정할 수 있도록 @value("${app.back-url}") 적용

* test(GenerateOAuthUrlService): OAuth URL 생성 로직 테스트 추가

- OAuth Provider에 따라 올바른 URL이 생성되는지 검증

* test(SignOutVolunteerService): 로그아웃 동작 테스트 추가

- 테스트 후 레디스 delete all
- 액세스 토큰 쿠키 삭제 및 리프레시 토큰 제거 검증
- 리프레시 토큰이 없는 경우에도 예외가 발생하지 않는지 확인
- 테스트 시 MockHttpServletResponse를 활용하여 쿠키 동작 검증
  - 쿠키 name이 중복으로 저장되는 문제 회피 (트러블슈팅 기록)

* feat(application.yml): front/back url 변수 처리

* feat(VolunteerSignController): OAuth 로그인 및 로그아웃 API 추가

- OAuth 로그인 URL 생성 API 추가
  - [POST] /api/volunteer/sign-in/oauth/{oauthProvider}
  - 지원되는 OAuth 제공자에 따라 리다이렉트 URL 생성 및 반환
  - 지원되지 않는 OAuth 제공자는 `BadRequestException` 처리

- 로그아웃 API 추가
  - [POST] /api/volunteer/sign-out
  - 액세스 토큰 쿠키 삭제 및 리프레시 토큰 제거
  - 성공 시 표준 응답 형식(`ApiResponse.ok`)으로 메시지 반환

- GenerateOAuthUrlUseCase를 사용해 OAuth URL 동적 생성
- SignOutVolunteerUseCase를 사용해 로그아웃 로직 처리

* feat(application.yml): naver-redirect-uri 변수 처리

* CICD/ 환경 변수 추가 (#61)

* cicd: 환경변수 추가

- OAuth 연동을 위한 환경변수 추가

* refactor(package): C/Q 구분 삭제

* feat(application.yml): UTF-8, KR 설정

* test(VolunteerSignController): OAuth 로그인 및 로그아웃 통합 테스트 추가

- 유효한 OAuth 제공자로 로그인 URL 생성 테스트 추가
- 지원되지 않는 OAuth 제공자에 대해 400 에러 반환 테스트 추가
- 로그아웃 요청 시 성공 메시지 반환 테스트 추가

* test(@transactional): 불필요한 트랜잭션 어노테이션 삭제

* refactor: 불필요한 어노테이션 삭제

* refactor(package): 패키지 이동

* style(ApiResponse): 불필요한 개행 제거

* feat(application.yml): front, back root url 추가

* refactor(package): 패키지 이동

* feat(cookie): 쿠키 삭제(덮어씌우기), 토큰 타입 추가(SIGNOUT), 파일명 변경

* feat(RefreshToken): 리프레시 토큰 삭제 수정

- 리프레시 토큰 삭제의 파라미터를 엑세스 토큰에서 사용자 ID로 변경
- 리프레시 토큰이 존재하지 않아도 로그아웃이 가능하도록 로직 수정
  - 리프레시 토큰이 없는 상태에서 로그아웃이 불가능한 것은 비정상적인 동작으로 판단
- 레포지토리에서 사용자 ID로 리프레시 토큰을 찾는 메서드 추가

* feat(SignOut): 로그아웃 로직 구현 및 리프레시 토큰 삭제 처리

- 로그아웃 시 액세스 토큰 쿠키를 삭제(덮어씌우기)하는 로직 추가
- 리프레시 토큰을 사용자 ID를 기반으로 삭제하도록 처리

* test(CookieService): 액세스 토큰 설정 및 삭제 로직 테스트 추가

- 액세스 토큰 설정 동작 검증
  - 토큰 값, HttpOnly, Secure, Path 등 쿠키 속성 확인
- 액세스 토큰 삭제 동작 검증
  - 쿠키 값에 SIGNOUT이 포함된 것을 확인
  - 쿠키 값이 삭제(Max-Age=0)되었는지 확인

* feat(OAuth): OAuth URL 생성 서비스 구현

- OAuth 인증 URL을 동적으로 생성
- 백엔드 Root URL과 OAuth Provider 이름을 조합하여 URL 생성
  - /oauth2/authorization/{provider} 형태의 URL 반환 로직 구현
  - 환경에 따라 백엔드 Root URL을 설정할 수 있도록 @value("${app.back-url}") 적용

* test(GenerateOAuthUrlService): OAuth URL 생성 로직 테스트 추가

- OAuth Provider에 따라 올바른 URL이 생성되는지 검증

* test(SignOutVolunteerService): 로그아웃 동작 테스트 추가

- 테스트 후 레디스 delete all
- 액세스 토큰 쿠키 삭제 및 리프레시 토큰 제거 검증
- 리프레시 토큰이 없는 경우에도 예외가 발생하지 않는지 확인
- 테스트 시 MockHttpServletResponse를 활용하여 쿠키 동작 검증
  - 쿠키 name이 중복으로 저장되는 문제 회피 (트러블슈팅 기록)

* feat(application.yml): front/back url 변수 처리

* feat(VolunteerSignController): OAuth 로그인 및 로그아웃 API 추가

- OAuth 로그인 URL 생성 API 추가
  - [POST] /api/volunteer/sign-in/oauth/{oauthProvider}
  - 지원되는 OAuth 제공자에 따라 리다이렉트 URL 생성 및 반환
  - 지원되지 않는 OAuth 제공자는 `BadRequestException` 처리

- 로그아웃 API 추가
  - [POST] /api/volunteer/sign-out
  - 액세스 토큰 쿠키 삭제 및 리프레시 토큰 제거
  - 성공 시 표준 응답 형식(`ApiResponse.ok`)으로 메시지 반환

- GenerateOAuthUrlUseCase를 사용해 OAuth URL 동적 생성
- SignOutVolunteerUseCase를 사용해 로그아웃 로직 처리

* feat(application.yml): naver-redirect-uri 변수 처리

* refactor(package): C/Q 구분 삭제

* feat(application.yml): UTF-8, KR 설정

* test(VolunteerSignController): OAuth 로그인 및 로그아웃 통합 테스트 추가

- 유효한 OAuth 제공자로 로그인 URL 생성 테스트 추가
- 지원되지 않는 OAuth 제공자에 대해 400 에러 반환 테스트 추가
- 로그아웃 요청 시 성공 메시지 반환 테스트 추가

* test(@transactional): 불필요한 트랜잭션 어노테이션 삭제

* refactor: 불필요한 어노테이션 삭제

* refactor: 불필요한 import 제거
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants