From cbcb625a4620aa58d842d8be03b72c0f6469d0d8 Mon Sep 17 00:00:00 2001 From: Parkjyun <98092394+Parkjyun@users.noreply.github.com> Date: Mon, 8 Jul 2024 12:57:26 +0900 Subject: [PATCH] =?UTF-8?q?[refac]=20=ED=8C=A8=ED=82=A4=EC=A7=80=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD=20(#20)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [refac] move AuthController.java to another package * [refac] move SuccessMessage.java, ErrorMessage.java * [refac] change name of SuccessMessage.java, ErrorMessage.java * [refac] move AuthController.java, AuthService.java * [refac] move dtos related with auth * [refac] move exceptions * [refac] move GlobalExceptionHandler.java * [refac] move ApiResponse.java, BaseResponse.java * [refac] move SuccessCode.java and ErrorCode.java * [refac] move package oauth to external/openfeign * [refac] move JwtAuthenticationEntryPoint.java * [refac] move GlobalExceptionHandler.java * [refac] move SuccessCode.java, ErrorCode.java * [refac] move ApiResponse.java, BaseResponse.java --- .../api/advice/GlobalExceptionHandler.java | 4 ++ .../auth}/controller/AuthController.java | 24 +++++------ .../controller}/request/UserLoginRequest.java | 2 +- .../{ => api/auth}/service/AuthService.java | 34 +++++++-------- .../service}/response/UserLoginResponse.java | 2 +- .../response/UserReissueResponse.java | 2 +- .../hankkiserver/api/dto/ApiResponse.java | 23 ++++++++++ .../hankkiserver/api/dto/BaseResponse.java | 42 +++++++++++++++++++ .../JwtAuthenticationEntryPoint.java | 12 +++--- .../auth/config/SecurityConfig.java | 2 +- .../auth/filter/ExceptionHandlerFilter.java | 18 ++++---- .../auth/filter/JwtAuthenticationFilter.java | 6 +-- .../hankkiserver/auth/jwt/JwtValidator.java | 16 +++---- .../hankkiserver/common/ApiResponse.java | 23 ---------- .../hankkiserver/common/BaseResponse.java | 42 ------------------- .../common/GlobalExceptionHandler.java | 4 -- .../ErrorMessage.java => code/ErrorCode.java} | 4 +- .../SuccessCode.java} | 4 +- .../common/exception/BusinessException.java | 14 +++++++ .../exception/EntityNotFoundException.java | 13 ++++++ .../exception/InvalidValueException.java | 14 +++++++ .../exception/UnauthorizedException.java | 14 +++++++ .../domain/user/model/Platform.java | 6 +-- .../exception/BusinessException.java | 14 ------- .../exception/EntityNotFoundException.java | 13 ------ .../exception/InvalidValueException.java | 14 ------- .../exception/UnauthorizedException.java | 14 ------- .../apple/AppleClientSecretGenerator.java | 8 ++-- .../openfeign}/apple/AppleFeignClient.java | 10 ++--- .../apple/AppleIdentityTokenParser.java | 12 +++--- .../openfeign}/apple/AppleOAuthProvider.java | 18 ++++---- .../apple/ApplePrivateKeyGenerator.java | 2 +- .../apple/ApplePublicKeyGenerator.java | 16 +++---- .../openfeign}/apple/dto/ApplePublicKey.java | 2 +- .../openfeign}/apple/dto/ApplePublicKeys.java | 8 ++-- .../apple/dto/AppleRevokeRequest.java | 2 +- .../apple/dto/AppleTokenRequest.java | 2 +- .../apple/dto/AppleTokenResponse.java | 2 +- .../openfeign}/dto/SocialInfoDto.java | 2 +- .../openfeign}/kakao/KakaoAccessToken.java | 2 +- .../openfeign}/kakao/KakaoFeignClient.java | 4 +- .../openfeign}/kakao/KakaoOAuthProvider.java | 8 ++-- .../openfeign}/kakao/dto/KakaoAccount.java | 2 +- .../openfeign}/kakao/dto/KakaoUserInfo.java | 2 +- .../kakao/dto/KakaoUserProfile.java | 2 +- 45 files changed, 242 insertions(+), 242 deletions(-) create mode 100644 src/main/java/org/hankki/hankkiserver/api/advice/GlobalExceptionHandler.java rename src/main/java/org/hankki/hankkiserver/{ => api/auth}/controller/AuthController.java (65%) rename src/main/java/org/hankki/hankkiserver/{service/dto => api/auth/controller}/request/UserLoginRequest.java (69%) rename src/main/java/org/hankki/hankkiserver/{ => api/auth}/service/AuthService.java (85%) rename src/main/java/org/hankki/hankkiserver/{service/dto => api/auth/service}/response/UserLoginResponse.java (93%) rename src/main/java/org/hankki/hankkiserver/{service/dto => api/auth/service}/response/UserReissueResponse.java (88%) create mode 100644 src/main/java/org/hankki/hankkiserver/api/dto/ApiResponse.java create mode 100644 src/main/java/org/hankki/hankkiserver/api/dto/BaseResponse.java rename src/main/java/org/hankki/hankkiserver/auth/{jwt => }/JwtAuthenticationEntryPoint.java (81%) delete mode 100644 src/main/java/org/hankki/hankkiserver/common/ApiResponse.java delete mode 100644 src/main/java/org/hankki/hankkiserver/common/BaseResponse.java delete mode 100644 src/main/java/org/hankki/hankkiserver/common/GlobalExceptionHandler.java rename src/main/java/org/hankki/hankkiserver/common/{dto/ErrorMessage.java => code/ErrorCode.java} (97%) rename src/main/java/org/hankki/hankkiserver/common/{dto/SuccessMessage.java => code/SuccessCode.java} (86%) create mode 100644 src/main/java/org/hankki/hankkiserver/common/exception/BusinessException.java create mode 100644 src/main/java/org/hankki/hankkiserver/common/exception/EntityNotFoundException.java create mode 100644 src/main/java/org/hankki/hankkiserver/common/exception/InvalidValueException.java create mode 100644 src/main/java/org/hankki/hankkiserver/common/exception/UnauthorizedException.java delete mode 100644 src/main/java/org/hankki/hankkiserver/exception/BusinessException.java delete mode 100644 src/main/java/org/hankki/hankkiserver/exception/EntityNotFoundException.java delete mode 100644 src/main/java/org/hankki/hankkiserver/exception/InvalidValueException.java delete mode 100644 src/main/java/org/hankki/hankkiserver/exception/UnauthorizedException.java rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/apple/AppleClientSecretGenerator.java (84%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/apple/AppleFeignClient.java (62%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/apple/AppleIdentityTokenParser.java (74%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/apple/AppleOAuthProvider.java (75%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/apple/ApplePrivateKeyGenerator.java (92%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/apple/ApplePublicKeyGenerator.java (71%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/apple/dto/ApplePublicKey.java (74%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/apple/dto/ApplePublicKeys.java (64%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/apple/dto/AppleRevokeRequest.java (91%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/apple/dto/AppleTokenRequest.java (91%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/apple/dto/AppleTokenResponse.java (91%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/dto/SocialInfoDto.java (84%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/kakao/KakaoAccessToken.java (89%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/kakao/KakaoFeignClient.java (77%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/kakao/KakaoOAuthProvider.java (71%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/kakao/dto/KakaoAccount.java (85%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/kakao/dto/KakaoUserInfo.java (81%) rename src/main/java/org/hankki/hankkiserver/{oauth => external/openfeign}/kakao/dto/KakaoUserProfile.java (80%) diff --git a/src/main/java/org/hankki/hankkiserver/api/advice/GlobalExceptionHandler.java b/src/main/java/org/hankki/hankkiserver/api/advice/GlobalExceptionHandler.java new file mode 100644 index 00000000..e0003509 --- /dev/null +++ b/src/main/java/org/hankki/hankkiserver/api/advice/GlobalExceptionHandler.java @@ -0,0 +1,4 @@ +package org.hankki.hankkiserver.api.advice; + +public class GlobalExceptionHandler { +} diff --git a/src/main/java/org/hankki/hankkiserver/controller/AuthController.java b/src/main/java/org/hankki/hankkiserver/api/auth/controller/AuthController.java similarity index 65% rename from src/main/java/org/hankki/hankkiserver/controller/AuthController.java rename to src/main/java/org/hankki/hankkiserver/api/auth/controller/AuthController.java index b38b169f..270fd521 100644 --- a/src/main/java/org/hankki/hankkiserver/controller/AuthController.java +++ b/src/main/java/org/hankki/hankkiserver/api/auth/controller/AuthController.java @@ -1,15 +1,15 @@ -package org.hankki.hankkiserver.controller; +package org.hankki.hankkiserver.api.auth.controller; import jakarta.annotation.Nullable; import lombok.RequiredArgsConstructor; import org.hankki.hankkiserver.auth.UserId; -import org.hankki.hankkiserver.common.ApiResponse; -import org.hankki.hankkiserver.common.BaseResponse; -import org.hankki.hankkiserver.common.dto.SuccessMessage; -import org.hankki.hankkiserver.service.AuthService; -import org.hankki.hankkiserver.service.dto.request.UserLoginRequest; -import org.hankki.hankkiserver.service.dto.response.UserLoginResponse; -import org.hankki.hankkiserver.service.dto.response.UserReissueResponse; +import org.hankki.hankkiserver.api.dto.ApiResponse; +import org.hankki.hankkiserver.api.dto.BaseResponse; +import org.hankki.hankkiserver.common.code.SuccessCode; +import org.hankki.hankkiserver.api.auth.service.AuthService; +import org.hankki.hankkiserver.api.auth.controller.request.UserLoginRequest; +import org.hankki.hankkiserver.api.auth.service.response.UserLoginResponse; +import org.hankki.hankkiserver.api.auth.service.response.UserReissueResponse; import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -26,14 +26,14 @@ public ResponseEntity> login( @RequestHeader(HttpHeaders.AUTHORIZATION) final String token, @RequestBody final UserLoginRequest request) { final UserLoginResponse response = authService.login(token, request); - return ApiResponse.success(SuccessMessage.OK, response); + return ApiResponse.success(SuccessCode.OK, response); } @PatchMapping("/auth/logout") public ResponseEntity> signOut( @UserId final Long userId) { authService.logOut(userId); - return ApiResponse.success(SuccessMessage.OK); + return ApiResponse.success(SuccessCode.OK); } @DeleteMapping("/auth/withdraw") @@ -41,13 +41,13 @@ public ResponseEntity> withdraw( @UserId final Long userId, @Nullable @RequestHeader("X-Apple-Code") final String code){ authService.withdraw(userId,code); - return ApiResponse.success(SuccessMessage.NO_CONTENT); + return ApiResponse.success(SuccessCode.NO_CONTENT); } @PostMapping("/auth/reissue") public ResponseEntity> reissue( @RequestHeader(HttpHeaders.AUTHORIZATION) final String refreshtoken) { final UserReissueResponse response = authService.reissue(refreshtoken); - return ApiResponse.success(SuccessMessage.OK, response); + return ApiResponse.success(SuccessCode.OK, response); } } diff --git a/src/main/java/org/hankki/hankkiserver/service/dto/request/UserLoginRequest.java b/src/main/java/org/hankki/hankkiserver/api/auth/controller/request/UserLoginRequest.java similarity index 69% rename from src/main/java/org/hankki/hankkiserver/service/dto/request/UserLoginRequest.java rename to src/main/java/org/hankki/hankkiserver/api/auth/controller/request/UserLoginRequest.java index 6c586c87..7caafcc1 100644 --- a/src/main/java/org/hankki/hankkiserver/service/dto/request/UserLoginRequest.java +++ b/src/main/java/org/hankki/hankkiserver/api/auth/controller/request/UserLoginRequest.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.service.dto.request; +package org.hankki.hankkiserver.api.auth.controller.request; import jakarta.annotation.Nullable; diff --git a/src/main/java/org/hankki/hankkiserver/service/AuthService.java b/src/main/java/org/hankki/hankkiserver/api/auth/service/AuthService.java similarity index 85% rename from src/main/java/org/hankki/hankkiserver/service/AuthService.java rename to src/main/java/org/hankki/hankkiserver/api/auth/service/AuthService.java index 86fc4c7a..86ec5ff8 100644 --- a/src/main/java/org/hankki/hankkiserver/service/AuthService.java +++ b/src/main/java/org/hankki/hankkiserver/api/auth/service/AuthService.java @@ -1,24 +1,24 @@ -package org.hankki.hankkiserver.service; +package org.hankki.hankkiserver.api.auth.service; import lombok.RequiredArgsConstructor; import org.hankki.hankkiserver.auth.jwt.JwtProvider; import org.hankki.hankkiserver.auth.jwt.JwtValidator; import org.hankki.hankkiserver.auth.jwt.Token; -import org.hankki.hankkiserver.common.dto.ErrorMessage; +import org.hankki.hankkiserver.common.code.ErrorCode; import org.hankki.hankkiserver.domain.user.model.User; import org.hankki.hankkiserver.domain.user.model.UserInfo; import org.hankki.hankkiserver.domain.user.model.Platform; -import org.hankki.hankkiserver.exception.EntityNotFoundException; -import org.hankki.hankkiserver.exception.InvalidValueException; -import org.hankki.hankkiserver.exception.UnauthorizedException; -import org.hankki.hankkiserver.oauth.apple.AppleOAuthProvider; -import org.hankki.hankkiserver.oauth.dto.SocialInfoDto; -import org.hankki.hankkiserver.oauth.kakao.KakaoOAuthProvider; +import org.hankki.hankkiserver.common.exception.EntityNotFoundException; +import org.hankki.hankkiserver.common.exception.InvalidValueException; +import org.hankki.hankkiserver.common.exception.UnauthorizedException; +import org.hankki.hankkiserver.external.openfeign.apple.AppleOAuthProvider; +import org.hankki.hankkiserver.external.openfeign.dto.SocialInfoDto; import org.hankki.hankkiserver.domain.user.repository.UserInfoRepository; import org.hankki.hankkiserver.domain.user.repository.UserRepository; -import org.hankki.hankkiserver.service.dto.request.UserLoginRequest; -import org.hankki.hankkiserver.service.dto.response.UserLoginResponse; -import org.hankki.hankkiserver.service.dto.response.UserReissueResponse; +import org.hankki.hankkiserver.api.auth.controller.request.UserLoginRequest; +import org.hankki.hankkiserver.api.auth.service.response.UserLoginResponse; +import org.hankki.hankkiserver.api.auth.service.response.UserReissueResponse; +import org.hankki.hankkiserver.external.openfeign.kakao.KakaoOAuthProvider; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -64,7 +64,7 @@ public void withdraw(final Long userId, final String code) { String refreshToken = appleOAuthProvider.getAppleToken(code); appleOAuthProvider.requestRevoke(refreshToken); } catch (Exception e) { - throw new InvalidValueException(ErrorMessage.APPLE_REVOKE_FAILED); + throw new InvalidValueException(ErrorCode.APPLE_REVOKE_FAILED); } } @@ -99,7 +99,7 @@ private SocialInfoDto getSocialInfo( } else if (APPLE == platform){ return appleOAuthProvider.getAppleUserInfo(providerToken, name); } - throw new EntityNotFoundException(ErrorMessage.INVALID_PLATFORM_TYPE); + throw new EntityNotFoundException(ErrorCode.INVALID_PLATFORM_TYPE); } private boolean isRegisteredUser(Platform platform, SocialInfoDto socialInfo){ @@ -132,22 +132,22 @@ private User getUser( final Platform platform, final String serialId) { return userRepository.findByPlatformAndSerialId(platform, serialId) - .orElseThrow(() -> new EntityNotFoundException(ErrorMessage.USER_NOT_FOUND)); + .orElseThrow(() -> new EntityNotFoundException(ErrorCode.USER_NOT_FOUND)); } private User getUser(final Long userId) { return userRepository.findById(userId) - .orElseThrow(() -> new EntityNotFoundException(ErrorMessage.USER_NOT_FOUND)); + .orElseThrow(() -> new EntityNotFoundException(ErrorCode.USER_NOT_FOUND)); } private UserInfo getUserInfo(final Long memberId) { return userInfoRepository.findByUserId(memberId) - .orElseThrow(() -> new EntityNotFoundException(ErrorMessage.USER_INFO_NOT_FOUND)); + .orElseThrow(() -> new EntityNotFoundException(ErrorCode.USER_INFO_NOT_FOUND)); } private String getRefreshToken(final Long userId) { return userInfoRepository.findByUserId(userId) - .orElseThrow(() -> new EntityNotFoundException(ErrorMessage.REFRESH_TOKEN_NOT_FOUND)) + .orElseThrow(() -> new EntityNotFoundException(ErrorCode.REFRESH_TOKEN_NOT_FOUND)) .getRefreshToken(); } diff --git a/src/main/java/org/hankki/hankkiserver/service/dto/response/UserLoginResponse.java b/src/main/java/org/hankki/hankkiserver/api/auth/service/response/UserLoginResponse.java similarity index 93% rename from src/main/java/org/hankki/hankkiserver/service/dto/response/UserLoginResponse.java rename to src/main/java/org/hankki/hankkiserver/api/auth/service/response/UserLoginResponse.java index 211296d0..aa82941d 100644 --- a/src/main/java/org/hankki/hankkiserver/service/dto/response/UserLoginResponse.java +++ b/src/main/java/org/hankki/hankkiserver/api/auth/service/response/UserLoginResponse.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.service.dto.response; +package org.hankki.hankkiserver.api.auth.service.response; import lombok.AccessLevel; import lombok.Builder; diff --git a/src/main/java/org/hankki/hankkiserver/service/dto/response/UserReissueResponse.java b/src/main/java/org/hankki/hankkiserver/api/auth/service/response/UserReissueResponse.java similarity index 88% rename from src/main/java/org/hankki/hankkiserver/service/dto/response/UserReissueResponse.java rename to src/main/java/org/hankki/hankkiserver/api/auth/service/response/UserReissueResponse.java index c0da6e34..240062c2 100644 --- a/src/main/java/org/hankki/hankkiserver/service/dto/response/UserReissueResponse.java +++ b/src/main/java/org/hankki/hankkiserver/api/auth/service/response/UserReissueResponse.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.service.dto.response; +package org.hankki.hankkiserver.api.auth.service.response; import lombok.AccessLevel; import lombok.Builder; diff --git a/src/main/java/org/hankki/hankkiserver/api/dto/ApiResponse.java b/src/main/java/org/hankki/hankkiserver/api/dto/ApiResponse.java new file mode 100644 index 00000000..36154eec --- /dev/null +++ b/src/main/java/org/hankki/hankkiserver/api/dto/ApiResponse.java @@ -0,0 +1,23 @@ +package org.hankki.hankkiserver.api.dto; + +import org.hankki.hankkiserver.common.code.ErrorCode; +import org.hankki.hankkiserver.common.code.SuccessCode; +import org.springframework.http.ResponseEntity; + +public interface ApiResponse { + + static ResponseEntity> success(SuccessCode successCode) { + return ResponseEntity.status(successCode.getHttpStatus()) + .body(BaseResponse.of(successCode)); + } + + static ResponseEntity> success(SuccessCode successCode, T data) { + return org.springframework.http.ResponseEntity.status(successCode.getHttpStatus()) + .body(BaseResponse.of(successCode, data)); + } + + static ResponseEntity> failure(ErrorCode errorCode) { + return ResponseEntity.status(errorCode.getHttpStatus()) + .body(BaseResponse.of(errorCode)); + } +} diff --git a/src/main/java/org/hankki/hankkiserver/api/dto/BaseResponse.java b/src/main/java/org/hankki/hankkiserver/api/dto/BaseResponse.java new file mode 100644 index 00000000..f0646334 --- /dev/null +++ b/src/main/java/org/hankki/hankkiserver/api/dto/BaseResponse.java @@ -0,0 +1,42 @@ +package org.hankki.hankkiserver.api.dto; + +import com.fasterxml.jackson.annotation.JsonInclude; +import org.hankki.hankkiserver.common.code.ErrorCode; +import org.hankki.hankkiserver.common.code.SuccessCode; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder(access = AccessLevel.PRIVATE) +@AllArgsConstructor(access = AccessLevel.PRIVATE) +public class BaseResponse { + + private final int status; + private final String message; + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private final T data; + + public static BaseResponse of(SuccessCode successCode) { + return builder() + .status(successCode.getHttpStatus().value()) + .message(successCode.getMessage()) + .build(); + } + + public static BaseResponse of(SuccessCode successCode, T data) { + return builder() + .status(successCode.getHttpStatus().value()) + .message(successCode.getMessage()) + .data(data) + .build(); + } + + public static BaseResponse of(ErrorCode errorCode) { + return builder() + .status(errorCode.getHttpStatus().value()) + .message(errorCode.getMessage()) + .build(); + } +} diff --git a/src/main/java/org/hankki/hankkiserver/auth/jwt/JwtAuthenticationEntryPoint.java b/src/main/java/org/hankki/hankkiserver/auth/JwtAuthenticationEntryPoint.java similarity index 81% rename from src/main/java/org/hankki/hankkiserver/auth/jwt/JwtAuthenticationEntryPoint.java rename to src/main/java/org/hankki/hankkiserver/auth/JwtAuthenticationEntryPoint.java index 5a4a905d..98a96daf 100644 --- a/src/main/java/org/hankki/hankkiserver/auth/jwt/JwtAuthenticationEntryPoint.java +++ b/src/main/java/org/hankki/hankkiserver/auth/JwtAuthenticationEntryPoint.java @@ -1,10 +1,10 @@ -package org.hankki.hankkiserver.auth.jwt; +package org.hankki.hankkiserver.auth; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; -import org.hankki.hankkiserver.common.BaseResponse; -import org.hankki.hankkiserver.common.dto.ErrorMessage; +import org.hankki.hankkiserver.api.dto.BaseResponse; +import org.hankki.hankkiserver.common.code.ErrorCode; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.security.core.AuthenticationException; @@ -28,17 +28,17 @@ public void commence( } private void handleException(HttpServletResponse response) throws IOException { - setResponse(response, HttpStatus.UNAUTHORIZED, ErrorMessage.UNAUTHORIZED); + setResponse(response, HttpStatus.UNAUTHORIZED, ErrorCode.UNAUTHORIZED); } private void setResponse( HttpServletResponse response, HttpStatus httpStatus, - ErrorMessage errorMessage) throws IOException { + ErrorCode errorCode) throws IOException { response.setContentType(MediaType.APPLICATION_JSON_VALUE); response.setCharacterEncoding("utf-8"); response.setStatus(httpStatus.value()); PrintWriter writer = response.getWriter(); - writer.write(objectMapper.writeValueAsString(BaseResponse.of(errorMessage))); + writer.write(objectMapper.writeValueAsString(BaseResponse.of(errorCode))); } } diff --git a/src/main/java/org/hankki/hankkiserver/auth/config/SecurityConfig.java b/src/main/java/org/hankki/hankkiserver/auth/config/SecurityConfig.java index e238e275..ab5bf21a 100644 --- a/src/main/java/org/hankki/hankkiserver/auth/config/SecurityConfig.java +++ b/src/main/java/org/hankki/hankkiserver/auth/config/SecurityConfig.java @@ -3,7 +3,7 @@ import lombok.RequiredArgsConstructor; import org.hankki.hankkiserver.auth.filter.ExceptionHandlerFilter; import org.hankki.hankkiserver.auth.filter.JwtAuthenticationFilter; -import org.hankki.hankkiserver.auth.jwt.JwtAuthenticationEntryPoint; +import org.hankki.hankkiserver.auth.JwtAuthenticationEntryPoint; import org.hankki.hankkiserver.auth.jwt.JwtProvider; import org.hankki.hankkiserver.auth.jwt.JwtValidator; import org.springframework.context.annotation.Bean; diff --git a/src/main/java/org/hankki/hankkiserver/auth/filter/ExceptionHandlerFilter.java b/src/main/java/org/hankki/hankkiserver/auth/filter/ExceptionHandlerFilter.java index 14dcf509..6bb1be41 100644 --- a/src/main/java/org/hankki/hankkiserver/auth/filter/ExceptionHandlerFilter.java +++ b/src/main/java/org/hankki/hankkiserver/auth/filter/ExceptionHandlerFilter.java @@ -4,9 +4,9 @@ import jakarta.servlet.FilterChain; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; -import org.hankki.hankkiserver.common.BaseResponse; -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import org.hankki.hankkiserver.exception.UnauthorizedException; +import org.hankki.hankkiserver.api.dto.BaseResponse; +import org.hankki.hankkiserver.common.code.ErrorCode; +import org.hankki.hankkiserver.common.exception.UnauthorizedException; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.filter.OncePerRequestFilter; @@ -36,25 +36,25 @@ private void handleUnauthorizedException( HttpServletResponse response, Exception e) throws IOException { UnauthorizedException ue = (UnauthorizedException) e; - ErrorMessage errorMessage = ue.getErrorMessage(); - HttpStatus httpStatus = errorMessage.getHttpStatus(); - setResponse(response, httpStatus, errorMessage); + ErrorCode errorCode = ue.getErrorCode(); + HttpStatus httpStatus = errorCode.getHttpStatus(); + setResponse(response, httpStatus, errorCode); } private void handleException( HttpServletResponse response, Exception e) throws IOException { - setResponse(response, HttpStatus.INTERNAL_SERVER_ERROR, ErrorMessage.INTERNAL_SERVER_ERROR); + setResponse(response, HttpStatus.INTERNAL_SERVER_ERROR, ErrorCode.INTERNAL_SERVER_ERROR); } private void setResponse( HttpServletResponse response, HttpStatus httpStatus, - ErrorMessage errorMessage) throws IOException { + ErrorCode errorCode) throws IOException { response.setContentType(MediaType.APPLICATION_JSON_VALUE); response.setCharacterEncoding("utf-8"); response.setStatus(httpStatus.value()); PrintWriter writer = response.getWriter(); - writer.write(objectMapper.writeValueAsString(BaseResponse.of(errorMessage))); + writer.write(objectMapper.writeValueAsString(BaseResponse.of(errorCode))); } } diff --git a/src/main/java/org/hankki/hankkiserver/auth/filter/JwtAuthenticationFilter.java b/src/main/java/org/hankki/hankkiserver/auth/filter/JwtAuthenticationFilter.java index 7d9242f4..983ea2e8 100644 --- a/src/main/java/org/hankki/hankkiserver/auth/filter/JwtAuthenticationFilter.java +++ b/src/main/java/org/hankki/hankkiserver/auth/filter/JwtAuthenticationFilter.java @@ -8,8 +8,8 @@ import org.hankki.hankkiserver.auth.UserAuthentication; import org.hankki.hankkiserver.auth.jwt.JwtProvider; import org.hankki.hankkiserver.auth.jwt.JwtValidator; -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import org.hankki.hankkiserver.exception.UnauthorizedException; +import org.hankki.hankkiserver.common.code.ErrorCode; +import org.hankki.hankkiserver.common.exception.UnauthorizedException; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.authentication.WebAuthenticationDetails; @@ -44,7 +44,7 @@ private String getAccessToken(HttpServletRequest request) { if (StringUtils.hasText(accessToken) && accessToken.startsWith(BEARER)) { return accessToken.substring(BEARER.length()); } - throw new UnauthorizedException(ErrorMessage.INVALID_ACCESS_TOKEN); + throw new UnauthorizedException(ErrorCode.INVALID_ACCESS_TOKEN); } private void doAuthentication( diff --git a/src/main/java/org/hankki/hankkiserver/auth/jwt/JwtValidator.java b/src/main/java/org/hankki/hankkiserver/auth/jwt/JwtValidator.java index 3ace2c63..3e042ffa 100644 --- a/src/main/java/org/hankki/hankkiserver/auth/jwt/JwtValidator.java +++ b/src/main/java/org/hankki/hankkiserver/auth/jwt/JwtValidator.java @@ -3,8 +3,8 @@ import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.JwtParser; import lombok.RequiredArgsConstructor; -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import org.hankki.hankkiserver.exception.UnauthorizedException; +import org.hankki.hankkiserver.common.code.ErrorCode; +import org.hankki.hankkiserver.common.exception.UnauthorizedException; import org.springframework.stereotype.Component; import static org.hankki.hankkiserver.auth.filter.JwtAuthenticationFilter.BEARER; @@ -19,9 +19,9 @@ public void validateAccessToken(String accessToken) { try { parseToken(accessToken); } catch (ExpiredJwtException e) { - throw new UnauthorizedException(ErrorMessage.EXPIRED_ACCESS_TOKEN); + throw new UnauthorizedException(ErrorCode.EXPIRED_ACCESS_TOKEN); } catch (Exception e) { - throw new UnauthorizedException(ErrorMessage.INVALID_ACCESS_TOKEN_VALUE); + throw new UnauthorizedException(ErrorCode.INVALID_ACCESS_TOKEN_VALUE); } } @@ -29,9 +29,9 @@ public void validateRefreshToken(final String refreshToken) { try { parseToken(getToken(refreshToken)); } catch (ExpiredJwtException e) { - throw new UnauthorizedException(ErrorMessage.EXPIRED_REFRESH_TOKEN); + throw new UnauthorizedException(ErrorCode.EXPIRED_REFRESH_TOKEN); } catch (Exception e) { - throw new UnauthorizedException(ErrorMessage.INVALID_REFRESH_TOKEN_VALUE); + throw new UnauthorizedException(ErrorCode.INVALID_REFRESH_TOKEN_VALUE); } } @@ -39,7 +39,7 @@ public void equalsRefreshToken( final String refreshToken, final String storedRefreshToken) { if (!getToken(refreshToken).equals(storedRefreshToken)) { - throw new UnauthorizedException(ErrorMessage.MISMATCH_REFRESH_TOKEN); + throw new UnauthorizedException(ErrorCode.MISMATCH_REFRESH_TOKEN); } } @@ -52,6 +52,6 @@ private String getToken(final String refreshToken) { if (refreshToken.startsWith(BEARER)) { return refreshToken.substring(BEARER.length()); } - throw new UnauthorizedException(ErrorMessage.INVALID_ACCESS_TOKEN); + throw new UnauthorizedException(ErrorCode.INVALID_ACCESS_TOKEN); } } diff --git a/src/main/java/org/hankki/hankkiserver/common/ApiResponse.java b/src/main/java/org/hankki/hankkiserver/common/ApiResponse.java deleted file mode 100644 index 6f3bf282..00000000 --- a/src/main/java/org/hankki/hankkiserver/common/ApiResponse.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.hankki.hankkiserver.common; - -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import org.hankki.hankkiserver.common.dto.SuccessMessage; -import org.springframework.http.ResponseEntity; - -public interface ApiResponse { - - static ResponseEntity> success(SuccessMessage successMessage) { - return ResponseEntity.status(successMessage.getHttpStatus()) - .body(BaseResponse.of(successMessage)); - } - - static ResponseEntity> success(SuccessMessage successMessage, T data) { - return org.springframework.http.ResponseEntity.status(successMessage.getHttpStatus()) - .body(BaseResponse.of(successMessage, data)); - } - - static ResponseEntity> failure(ErrorMessage errorMessage) { - return ResponseEntity.status(errorMessage.getHttpStatus()) - .body(BaseResponse.of(errorMessage)); - } -} diff --git a/src/main/java/org/hankki/hankkiserver/common/BaseResponse.java b/src/main/java/org/hankki/hankkiserver/common/BaseResponse.java deleted file mode 100644 index 9e009174..00000000 --- a/src/main/java/org/hankki/hankkiserver/common/BaseResponse.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.hankki.hankkiserver.common; - -import com.fasterxml.jackson.annotation.JsonInclude; -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import org.hankki.hankkiserver.common.dto.SuccessMessage; -import lombok.AccessLevel; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; - -@Getter -@Builder(access = AccessLevel.PRIVATE) -@AllArgsConstructor(access = AccessLevel.PRIVATE) -public class BaseResponse { - - private final int status; - private final String message; - @JsonInclude(value = JsonInclude.Include.NON_NULL) - private final T data; - - public static BaseResponse of(SuccessMessage successMessage) { - return builder() - .status(successMessage.getHttpStatus().value()) - .message(successMessage.getMessage()) - .build(); - } - - public static BaseResponse of(SuccessMessage successMessage, T data) { - return builder() - .status(successMessage.getHttpStatus().value()) - .message(successMessage.getMessage()) - .data(data) - .build(); - } - - public static BaseResponse of(ErrorMessage errorMessage) { - return builder() - .status(errorMessage.getHttpStatus().value()) - .message(errorMessage.getMessage()) - .build(); - } -} diff --git a/src/main/java/org/hankki/hankkiserver/common/GlobalExceptionHandler.java b/src/main/java/org/hankki/hankkiserver/common/GlobalExceptionHandler.java deleted file mode 100644 index ac8959a7..00000000 --- a/src/main/java/org/hankki/hankkiserver/common/GlobalExceptionHandler.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.hankki.hankkiserver.common; - -public class GlobalExceptionHandler { -} diff --git a/src/main/java/org/hankki/hankkiserver/common/dto/ErrorMessage.java b/src/main/java/org/hankki/hankkiserver/common/code/ErrorCode.java similarity index 97% rename from src/main/java/org/hankki/hankkiserver/common/dto/ErrorMessage.java rename to src/main/java/org/hankki/hankkiserver/common/code/ErrorCode.java index 7d3e5dfd..e5851852 100644 --- a/src/main/java/org/hankki/hankkiserver/common/dto/ErrorMessage.java +++ b/src/main/java/org/hankki/hankkiserver/common/code/ErrorCode.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.common.dto; +package org.hankki.hankkiserver.common.code; import lombok.AccessLevel; import lombok.Getter; @@ -7,7 +7,7 @@ @Getter @RequiredArgsConstructor(access = AccessLevel.PRIVATE) -public enum ErrorMessage { +public enum ErrorCode { // reuqest error BAD_REQUEST(HttpStatus.BAD_REQUEST, "잘못된 요청입니다."), diff --git a/src/main/java/org/hankki/hankkiserver/common/dto/SuccessMessage.java b/src/main/java/org/hankki/hankkiserver/common/code/SuccessCode.java similarity index 86% rename from src/main/java/org/hankki/hankkiserver/common/dto/SuccessMessage.java rename to src/main/java/org/hankki/hankkiserver/common/code/SuccessCode.java index 662cdd6d..fb77fd27 100644 --- a/src/main/java/org/hankki/hankkiserver/common/dto/SuccessMessage.java +++ b/src/main/java/org/hankki/hankkiserver/common/code/SuccessCode.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.common.dto; +package org.hankki.hankkiserver.common.code; import lombok.AccessLevel; import lombok.Getter; @@ -7,7 +7,7 @@ @Getter @RequiredArgsConstructor(access = AccessLevel.PRIVATE) -public enum SuccessMessage { +public enum SuccessCode { OK(HttpStatus.OK, "요청이 성공했습니다."), NO_CONTENT(HttpStatus.NO_CONTENT, "요청이 성공했습니다."), diff --git a/src/main/java/org/hankki/hankkiserver/common/exception/BusinessException.java b/src/main/java/org/hankki/hankkiserver/common/exception/BusinessException.java new file mode 100644 index 00000000..085ad902 --- /dev/null +++ b/src/main/java/org/hankki/hankkiserver/common/exception/BusinessException.java @@ -0,0 +1,14 @@ +package org.hankki.hankkiserver.common.exception; + +import org.hankki.hankkiserver.common.code.ErrorCode; +import lombok.Getter; + +@Getter +public class BusinessException extends RuntimeException { + private final ErrorCode errorCode; + + public BusinessException(ErrorCode errorCode) { + super(errorCode.getMessage()); + this.errorCode = errorCode; + } +} diff --git a/src/main/java/org/hankki/hankkiserver/common/exception/EntityNotFoundException.java b/src/main/java/org/hankki/hankkiserver/common/exception/EntityNotFoundException.java new file mode 100644 index 00000000..84833a59 --- /dev/null +++ b/src/main/java/org/hankki/hankkiserver/common/exception/EntityNotFoundException.java @@ -0,0 +1,13 @@ +package org.hankki.hankkiserver.common.exception; + +import org.hankki.hankkiserver.common.code.ErrorCode; + +public class EntityNotFoundException extends BusinessException { + public EntityNotFoundException() { + super(ErrorCode.ENTITY_NOT_FOUND); + } + + public EntityNotFoundException(ErrorCode errorCode) { + super(errorCode); + } +} diff --git a/src/main/java/org/hankki/hankkiserver/common/exception/InvalidValueException.java b/src/main/java/org/hankki/hankkiserver/common/exception/InvalidValueException.java new file mode 100644 index 00000000..cf8ba4f1 --- /dev/null +++ b/src/main/java/org/hankki/hankkiserver/common/exception/InvalidValueException.java @@ -0,0 +1,14 @@ +package org.hankki.hankkiserver.common.exception; + +import org.hankki.hankkiserver.common.code.ErrorCode; + +public class InvalidValueException extends BusinessException { + public InvalidValueException() { + super(ErrorCode.BAD_REQUEST); + } + + public InvalidValueException(ErrorCode errorCode) { + super(errorCode); + } +} + diff --git a/src/main/java/org/hankki/hankkiserver/common/exception/UnauthorizedException.java b/src/main/java/org/hankki/hankkiserver/common/exception/UnauthorizedException.java new file mode 100644 index 00000000..508b0ff1 --- /dev/null +++ b/src/main/java/org/hankki/hankkiserver/common/exception/UnauthorizedException.java @@ -0,0 +1,14 @@ +package org.hankki.hankkiserver.common.exception; + +import org.hankki.hankkiserver.common.code.ErrorCode; + +public class UnauthorizedException extends BusinessException { + public UnauthorizedException() { + super(ErrorCode.UNAUTHORIZED); + } + + public UnauthorizedException(ErrorCode errorCode) { + super(errorCode); + } +} + diff --git a/src/main/java/org/hankki/hankkiserver/domain/user/model/Platform.java b/src/main/java/org/hankki/hankkiserver/domain/user/model/Platform.java index 3a062c31..5ea84b49 100644 --- a/src/main/java/org/hankki/hankkiserver/domain/user/model/Platform.java +++ b/src/main/java/org/hankki/hankkiserver/domain/user/model/Platform.java @@ -2,8 +2,8 @@ import lombok.Getter; import lombok.RequiredArgsConstructor; -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import org.hankki.hankkiserver.exception.InvalidValueException; +import org.hankki.hankkiserver.common.code.ErrorCode; +import org.hankki.hankkiserver.common.exception.InvalidValueException; import java.util.Arrays; @@ -20,6 +20,6 @@ public static Platform getEnumPlatformFromStringPlatform(String loginPlatform) { return Arrays.stream(values()) .filter(platform -> platform.loginPlatform.equals(loginPlatform)) .findFirst() - .orElseThrow(() -> new InvalidValueException(ErrorMessage.INVALID_PLATFORM_TYPE)); + .orElseThrow(() -> new InvalidValueException(ErrorCode.INVALID_PLATFORM_TYPE)); } } diff --git a/src/main/java/org/hankki/hankkiserver/exception/BusinessException.java b/src/main/java/org/hankki/hankkiserver/exception/BusinessException.java deleted file mode 100644 index 22ad1b7c..00000000 --- a/src/main/java/org/hankki/hankkiserver/exception/BusinessException.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.hankki.hankkiserver.exception; - -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import lombok.Getter; - -@Getter -public class BusinessException extends RuntimeException { - private final ErrorMessage errorMessage; - - public BusinessException(ErrorMessage errorMessage) { - super(errorMessage.getMessage()); - this.errorMessage = errorMessage; - } -} diff --git a/src/main/java/org/hankki/hankkiserver/exception/EntityNotFoundException.java b/src/main/java/org/hankki/hankkiserver/exception/EntityNotFoundException.java deleted file mode 100644 index 273b6cf0..00000000 --- a/src/main/java/org/hankki/hankkiserver/exception/EntityNotFoundException.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.hankki.hankkiserver.exception; - -import org.hankki.hankkiserver.common.dto.ErrorMessage; - -public class EntityNotFoundException extends BusinessException { - public EntityNotFoundException() { - super(ErrorMessage.ENTITY_NOT_FOUND); - } - - public EntityNotFoundException(ErrorMessage errorMessage) { - super(errorMessage); - } -} diff --git a/src/main/java/org/hankki/hankkiserver/exception/InvalidValueException.java b/src/main/java/org/hankki/hankkiserver/exception/InvalidValueException.java deleted file mode 100644 index c8be87ca..00000000 --- a/src/main/java/org/hankki/hankkiserver/exception/InvalidValueException.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.hankki.hankkiserver.exception; - -import org.hankki.hankkiserver.common.dto.ErrorMessage; - -public class InvalidValueException extends BusinessException { - public InvalidValueException() { - super(ErrorMessage.BAD_REQUEST); - } - - public InvalidValueException(ErrorMessage errorMessage) { - super(errorMessage); - } -} - diff --git a/src/main/java/org/hankki/hankkiserver/exception/UnauthorizedException.java b/src/main/java/org/hankki/hankkiserver/exception/UnauthorizedException.java deleted file mode 100644 index 60f764d1..00000000 --- a/src/main/java/org/hankki/hankkiserver/exception/UnauthorizedException.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.hankki.hankkiserver.exception; - -import org.hankki.hankkiserver.common.dto.ErrorMessage; - -public class UnauthorizedException extends BusinessException { - public UnauthorizedException() { - super(ErrorMessage.UNAUTHORIZED); - } - - public UnauthorizedException(ErrorMessage errorMessage) { - super(errorMessage); - } -} - diff --git a/src/main/java/org/hankki/hankkiserver/oauth/apple/AppleClientSecretGenerator.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleClientSecretGenerator.java similarity index 84% rename from src/main/java/org/hankki/hankkiserver/oauth/apple/AppleClientSecretGenerator.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleClientSecretGenerator.java index 85dc3d92..83b9bba8 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/apple/AppleClientSecretGenerator.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleClientSecretGenerator.java @@ -1,10 +1,10 @@ -package org.hankki.hankkiserver.oauth.apple; +package org.hankki.hankkiserver.external.openfeign.apple; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import lombok.RequiredArgsConstructor; -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import org.hankki.hankkiserver.exception.InvalidValueException; +import org.hankki.hankkiserver.common.code.ErrorCode; +import org.hankki.hankkiserver.common.exception.InvalidValueException; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -41,7 +41,7 @@ protected String generateClientSecret() { .signWith(applePrivateKeyGenerator.getPrivateKey(), SignatureAlgorithm.ES256) .compact(); } catch (Exception e) { - throw new InvalidValueException(ErrorMessage.FAILED_TO_LOAD_PRIVATE_KEY); + throw new InvalidValueException(ErrorCode.FAILED_TO_LOAD_PRIVATE_KEY); } } } diff --git a/src/main/java/org/hankki/hankkiserver/oauth/apple/AppleFeignClient.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleFeignClient.java similarity index 62% rename from src/main/java/org/hankki/hankkiserver/oauth/apple/AppleFeignClient.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleFeignClient.java index ad861c4b..42b392e4 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/apple/AppleFeignClient.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleFeignClient.java @@ -1,9 +1,9 @@ -package org.hankki.hankkiserver.oauth.apple; +package org.hankki.hankkiserver.external.openfeign.apple; -import org.hankki.hankkiserver.oauth.apple.dto.AppleRevokeRequest; -import org.hankki.hankkiserver.oauth.apple.dto.AppleTokenRequest; -import org.hankki.hankkiserver.oauth.apple.dto.AppleTokenResponse; -import org.hankki.hankkiserver.oauth.apple.dto.ApplePublicKeys; +import org.hankki.hankkiserver.external.openfeign.apple.dto.ApplePublicKeys; +import org.hankki.hankkiserver.external.openfeign.apple.dto.AppleTokenRequest; +import org.hankki.hankkiserver.external.openfeign.apple.dto.AppleRevokeRequest; +import org.hankki.hankkiserver.external.openfeign.apple.dto.AppleTokenResponse; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; diff --git a/src/main/java/org/hankki/hankkiserver/oauth/apple/AppleIdentityTokenParser.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleIdentityTokenParser.java similarity index 74% rename from src/main/java/org/hankki/hankkiserver/oauth/apple/AppleIdentityTokenParser.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleIdentityTokenParser.java index 503192ba..af835903 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/apple/AppleIdentityTokenParser.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleIdentityTokenParser.java @@ -1,10 +1,10 @@ -package org.hankki.hankkiserver.oauth.apple; +package org.hankki.hankkiserver.external.openfeign.apple; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import io.jsonwebtoken.*; -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import org.hankki.hankkiserver.exception.UnauthorizedException; +import org.hankki.hankkiserver.common.code.ErrorCode; +import org.hankki.hankkiserver.common.exception.UnauthorizedException; import org.springframework.stereotype.Component; import java.security.PublicKey; @@ -22,7 +22,7 @@ public Map parseHeaders(String identityToken) { String decodedHeader = new String(Base64.getUrlDecoder().decode(encodedHeader)); return OBJECT_MAPPER.readValue(decodedHeader, Map.class); } catch (JsonProcessingException | ArrayIndexOutOfBoundsException e) { - throw new UnauthorizedException(ErrorMessage.INVALID_APPLE_IDENTITY_TOKEN); + throw new UnauthorizedException(ErrorCode.INVALID_APPLE_IDENTITY_TOKEN); } } @@ -35,9 +35,9 @@ public Claims parsePublicKeyAndGetClaims(String identityToken, PublicKey publicK .getBody(); } catch (ExpiredJwtException e) { - throw new UnauthorizedException(ErrorMessage.EXPIRED_IDENTITY_TOKEN); + throw new UnauthorizedException(ErrorCode.EXPIRED_IDENTITY_TOKEN); } catch (UnsupportedJwtException | MalformedJwtException | IllegalArgumentException e) { - throw new UnauthorizedException(ErrorMessage.INVALID_IDENTITY_TOKEN_VALUE); + throw new UnauthorizedException(ErrorCode.INVALID_IDENTITY_TOKEN_VALUE); } } } diff --git a/src/main/java/org/hankki/hankkiserver/oauth/apple/AppleOAuthProvider.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleOAuthProvider.java similarity index 75% rename from src/main/java/org/hankki/hankkiserver/oauth/apple/AppleOAuthProvider.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleOAuthProvider.java index d7ecd45e..b76056c2 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/apple/AppleOAuthProvider.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/AppleOAuthProvider.java @@ -1,15 +1,15 @@ -package org.hankki.hankkiserver.oauth.apple; +package org.hankki.hankkiserver.external.openfeign.apple; import io.jsonwebtoken.Claims; import lombok.RequiredArgsConstructor; -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import org.hankki.hankkiserver.exception.InvalidValueException; -import org.hankki.hankkiserver.oauth.apple.dto.ApplePublicKeys; -import org.hankki.hankkiserver.oauth.apple.dto.AppleRevokeRequest; -import org.hankki.hankkiserver.oauth.apple.dto.AppleTokenRequest; -import org.hankki.hankkiserver.oauth.apple.dto.AppleTokenResponse; -import org.hankki.hankkiserver.oauth.dto.SocialInfoDto; +import org.hankki.hankkiserver.common.code.ErrorCode; +import org.hankki.hankkiserver.common.exception.InvalidValueException; +import org.hankki.hankkiserver.external.openfeign.apple.dto.ApplePublicKeys; +import org.hankki.hankkiserver.external.openfeign.apple.dto.AppleTokenRequest; +import org.hankki.hankkiserver.external.openfeign.dto.SocialInfoDto; +import org.hankki.hankkiserver.external.openfeign.apple.dto.AppleRevokeRequest; +import org.hankki.hankkiserver.external.openfeign.apple.dto.AppleTokenResponse; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -45,7 +45,7 @@ public String getAppleToken(final String code) { AppleTokenRequest.of(code, clientId, clientSecret)); return appleTokenResponse.refreshToken(); } catch (Exception e) { - throw new InvalidValueException(ErrorMessage.FAILED_TO_LOAD_PRIVATE_KEY); + throw new InvalidValueException(ErrorCode.FAILED_TO_LOAD_PRIVATE_KEY); } } diff --git a/src/main/java/org/hankki/hankkiserver/oauth/apple/ApplePrivateKeyGenerator.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/ApplePrivateKeyGenerator.java similarity index 92% rename from src/main/java/org/hankki/hankkiserver/oauth/apple/ApplePrivateKeyGenerator.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/apple/ApplePrivateKeyGenerator.java index a0011e3e..3a4728e3 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/apple/ApplePrivateKeyGenerator.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/ApplePrivateKeyGenerator.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.oauth.apple; +package org.hankki.hankkiserver.external.openfeign.apple; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; diff --git a/src/main/java/org/hankki/hankkiserver/oauth/apple/ApplePublicKeyGenerator.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/ApplePublicKeyGenerator.java similarity index 71% rename from src/main/java/org/hankki/hankkiserver/oauth/apple/ApplePublicKeyGenerator.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/apple/ApplePublicKeyGenerator.java index 0038a413..95f5ac99 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/apple/ApplePublicKeyGenerator.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/ApplePublicKeyGenerator.java @@ -1,9 +1,9 @@ -package org.hankki.hankkiserver.oauth.apple; +package org.hankki.hankkiserver.external.openfeign.apple; -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import org.hankki.hankkiserver.exception.UnauthorizedException; -import org.hankki.hankkiserver.oauth.apple.dto.ApplePublicKey; -import org.hankki.hankkiserver.oauth.apple.dto.ApplePublicKeys; +import org.hankki.hankkiserver.common.code.ErrorCode; +import org.hankki.hankkiserver.common.exception.UnauthorizedException; +import org.hankki.hankkiserver.external.openfeign.apple.dto.ApplePublicKeys; +import org.hankki.hankkiserver.external.openfeign.apple.dto.ApplePublicKey; import org.springframework.stereotype.Component; import java.math.BigInteger; @@ -38,11 +38,11 @@ public PublicKey generatePublicKey( KeyFactory keyFactory = KeyFactory.getInstance(applePublicKey.kty()); return keyFactory.generatePublic(rsaPublicKeySpec); } catch (NoSuchAlgorithmException e) { - throw new UnauthorizedException(ErrorMessage.UNSUPPORTED_ALGORITHM); + throw new UnauthorizedException(ErrorCode.UNSUPPORTED_ALGORITHM); } catch (InvalidKeySpecException e) { - throw new UnauthorizedException(ErrorMessage.INVALID_KEY_SPEC); + throw new UnauthorizedException(ErrorCode.INVALID_KEY_SPEC); } catch (Exception e) { - throw new UnauthorizedException(ErrorMessage.INTERNAL_SERVER_ERROR); + throw new UnauthorizedException(ErrorCode.INTERNAL_SERVER_ERROR); } } } diff --git a/src/main/java/org/hankki/hankkiserver/oauth/apple/dto/ApplePublicKey.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/ApplePublicKey.java similarity index 74% rename from src/main/java/org/hankki/hankkiserver/oauth/apple/dto/ApplePublicKey.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/ApplePublicKey.java index 7646a781..5074d429 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/apple/dto/ApplePublicKey.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/ApplePublicKey.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.oauth.apple.dto; +package org.hankki.hankkiserver.external.openfeign.apple.dto; import java.util.Optional; diff --git a/src/main/java/org/hankki/hankkiserver/oauth/apple/dto/ApplePublicKeys.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/ApplePublicKeys.java similarity index 64% rename from src/main/java/org/hankki/hankkiserver/oauth/apple/dto/ApplePublicKeys.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/ApplePublicKeys.java index ade33d4d..c5b06c78 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/apple/dto/ApplePublicKeys.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/ApplePublicKeys.java @@ -1,7 +1,7 @@ -package org.hankki.hankkiserver.oauth.apple.dto; +package org.hankki.hankkiserver.external.openfeign.apple.dto; -import org.hankki.hankkiserver.common.dto.ErrorMessage; -import org.hankki.hankkiserver.exception.UnauthorizedException; +import org.hankki.hankkiserver.common.code.ErrorCode; +import org.hankki.hankkiserver.common.exception.UnauthorizedException; import java.util.List; @@ -13,6 +13,6 @@ public ApplePublicKey getMatchedPublicKey(String kid, String alg) { return this.applePublicKeys.stream() .filter(key -> key.kid().equals(kid) && key.alg().equals(alg)) .findFirst() - .orElseThrow(() -> new UnauthorizedException(ErrorMessage.INVALID_APPLE_IDENTITY_TOKEN)); + .orElseThrow(() -> new UnauthorizedException(ErrorCode.INVALID_APPLE_IDENTITY_TOKEN)); } } diff --git a/src/main/java/org/hankki/hankkiserver/oauth/apple/dto/AppleRevokeRequest.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/AppleRevokeRequest.java similarity index 91% rename from src/main/java/org/hankki/hankkiserver/oauth/apple/dto/AppleRevokeRequest.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/AppleRevokeRequest.java index c7bb2db3..075d7847 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/apple/dto/AppleRevokeRequest.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/AppleRevokeRequest.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.oauth.apple.dto; +package org.hankki.hankkiserver.external.openfeign.apple.dto; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; diff --git a/src/main/java/org/hankki/hankkiserver/oauth/apple/dto/AppleTokenRequest.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/AppleTokenRequest.java similarity index 91% rename from src/main/java/org/hankki/hankkiserver/oauth/apple/dto/AppleTokenRequest.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/AppleTokenRequest.java index 23783be0..457415bf 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/apple/dto/AppleTokenRequest.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/AppleTokenRequest.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.oauth.apple.dto; +package org.hankki.hankkiserver.external.openfeign.apple.dto; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; diff --git a/src/main/java/org/hankki/hankkiserver/oauth/apple/dto/AppleTokenResponse.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/AppleTokenResponse.java similarity index 91% rename from src/main/java/org/hankki/hankkiserver/oauth/apple/dto/AppleTokenResponse.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/AppleTokenResponse.java index 2139a772..b02f7c8e 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/apple/dto/AppleTokenResponse.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/apple/dto/AppleTokenResponse.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.oauth.apple.dto; +package org.hankki.hankkiserver.external.openfeign.apple.dto; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; diff --git a/src/main/java/org/hankki/hankkiserver/oauth/dto/SocialInfoDto.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/dto/SocialInfoDto.java similarity index 84% rename from src/main/java/org/hankki/hankkiserver/oauth/dto/SocialInfoDto.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/dto/SocialInfoDto.java index dc65797d..afcf5eac 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/dto/SocialInfoDto.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/dto/SocialInfoDto.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.oauth.dto; +package org.hankki.hankkiserver.external.openfeign.dto; public record SocialInfoDto( String serialId, diff --git a/src/main/java/org/hankki/hankkiserver/oauth/kakao/KakaoAccessToken.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/KakaoAccessToken.java similarity index 89% rename from src/main/java/org/hankki/hankkiserver/oauth/kakao/KakaoAccessToken.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/KakaoAccessToken.java index ec50de2b..18f16ac6 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/kakao/KakaoAccessToken.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/KakaoAccessToken.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.oauth.kakao; +package org.hankki.hankkiserver.external.openfeign.kakao; import lombok.AccessLevel; import lombok.AllArgsConstructor; diff --git a/src/main/java/org/hankki/hankkiserver/oauth/kakao/KakaoFeignClient.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/KakaoFeignClient.java similarity index 77% rename from src/main/java/org/hankki/hankkiserver/oauth/kakao/KakaoFeignClient.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/KakaoFeignClient.java index 12fe760e..4d23897f 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/kakao/KakaoFeignClient.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/KakaoFeignClient.java @@ -1,6 +1,6 @@ -package org.hankki.hankkiserver.oauth.kakao; +package org.hankki.hankkiserver.external.openfeign.kakao; -import org.hankki.hankkiserver.oauth.kakao.dto.KakaoUserInfo; +import org.hankki.hankkiserver.external.openfeign.kakao.dto.KakaoUserInfo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.GetMapping; diff --git a/src/main/java/org/hankki/hankkiserver/oauth/kakao/KakaoOAuthProvider.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/KakaoOAuthProvider.java similarity index 71% rename from src/main/java/org/hankki/hankkiserver/oauth/kakao/KakaoOAuthProvider.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/KakaoOAuthProvider.java index 0cc687d2..af8a1477 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/kakao/KakaoOAuthProvider.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/KakaoOAuthProvider.java @@ -1,11 +1,11 @@ -package org.hankki.hankkiserver.oauth.kakao; +package org.hankki.hankkiserver.external.openfeign.kakao; import lombok.RequiredArgsConstructor; -import org.hankki.hankkiserver.oauth.kakao.dto.KakaoUserInfo; -import org.hankki.hankkiserver.oauth.dto.SocialInfoDto; +import org.hankki.hankkiserver.external.openfeign.dto.SocialInfoDto; +import org.hankki.hankkiserver.external.openfeign.kakao.dto.KakaoUserInfo; import org.springframework.stereotype.Component; -import static org.hankki.hankkiserver.oauth.kakao.KakaoAccessToken.createKakaoAccessToken; +import static org.hankki.hankkiserver.external.openfeign.kakao.KakaoAccessToken.createKakaoAccessToken; @Component @RequiredArgsConstructor diff --git a/src/main/java/org/hankki/hankkiserver/oauth/kakao/dto/KakaoAccount.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/dto/KakaoAccount.java similarity index 85% rename from src/main/java/org/hankki/hankkiserver/oauth/kakao/dto/KakaoAccount.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/dto/KakaoAccount.java index 8e41c155..6b960690 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/kakao/dto/KakaoAccount.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/dto/KakaoAccount.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.oauth.kakao.dto; +package org.hankki.hankkiserver.external.openfeign.kakao.dto; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; diff --git a/src/main/java/org/hankki/hankkiserver/oauth/kakao/dto/KakaoUserInfo.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/dto/KakaoUserInfo.java similarity index 81% rename from src/main/java/org/hankki/hankkiserver/oauth/kakao/dto/KakaoUserInfo.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/dto/KakaoUserInfo.java index 021f0bb3..ccdb41a7 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/kakao/dto/KakaoUserInfo.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/dto/KakaoUserInfo.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.oauth.kakao.dto; +package org.hankki.hankkiserver.external.openfeign.kakao.dto; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; diff --git a/src/main/java/org/hankki/hankkiserver/oauth/kakao/dto/KakaoUserProfile.java b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/dto/KakaoUserProfile.java similarity index 80% rename from src/main/java/org/hankki/hankkiserver/oauth/kakao/dto/KakaoUserProfile.java rename to src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/dto/KakaoUserProfile.java index 1ef9e581..16a1dd87 100644 --- a/src/main/java/org/hankki/hankkiserver/oauth/kakao/dto/KakaoUserProfile.java +++ b/src/main/java/org/hankki/hankkiserver/external/openfeign/kakao/dto/KakaoUserProfile.java @@ -1,4 +1,4 @@ -package org.hankki.hankkiserver.oauth.kakao.dto; +package org.hankki.hankkiserver.external.openfeign.kakao.dto; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming;