From c9b8f20450903903ff22dfeb5761ff89a10a28bc Mon Sep 17 00:00:00 2001 From: Pochomo Date: Sun, 16 Mar 2025 15:29:32 +0900 Subject: [PATCH 1/4] ErrorCode Refactoring --- application.pid | 1 - .../api/auth/domain/error/ErrorCode.java | 46 +++++-------------- 2 files changed, 11 insertions(+), 36 deletions(-) delete mode 100644 application.pid diff --git a/application.pid b/application.pid deleted file mode 100644 index 6b6b370..0000000 --- a/application.pid +++ /dev/null @@ -1 +0,0 @@ -22032 \ No newline at end of file diff --git a/module_oauth/src/main/java/com/spoti/api/auth/domain/error/ErrorCode.java b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/ErrorCode.java index 96adea0..92f6879 100644 --- a/module_oauth/src/main/java/com/spoti/api/auth/domain/error/ErrorCode.java +++ b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/ErrorCode.java @@ -14,53 +14,29 @@ public enum ErrorCode { NOT_FOUND(404, "G004", "데이터가 존재하지 않습니다."), UNSUPPORTED_MEDIA_TYPE(415, "G005", "지원되지 않는 형식입니다."), - // Basic - - // Member - MEMBER_NOT_FOUND(400, "M001", "존재 하지 않는 유저입니다."), - AUTHORITY_INVALID(403, "M002", "권한이 없습니다."), - // Auth (ExceptionHandler 불필요) - /** The value of one or more redirection URIs is unauthorized. */ + /** + * The value of one or more redirection URIs is unauthorized. + */ UNAUTHORIZED_REDIRECT_URI(401, "A001", "유효하지 않은 redirect_uri 입니다."), - /** 지원하지 않는 소셜로그인 */ + /** + * 지원하지 않는 소셜로그인 + */ UNSUPPORTED_OAUTH2_PROVIDER(401, "A002", "지원하지 않는 소셜로그인입니다."), - /** 인증에 필수적인 정보가 OAuth provider 로부터 전달되지 않았음. 사용자가 개인정보 제공에 비동의했거나, 제대로 계정 정보를 설정하지 않은 경우 발생 */ + /** + * 인증에 필수적인 정보가 OAuth provider 로부터 전달되지 않았음. 사용자가 개인정보 제공에 비동의했거나, 제대로 계정 정보를 설정하지 않은 경우 발생 + */ INVALID_OAUTH2_INFO(401, "A003", "잘못된 OAuth 정보입니다."), + /** * request 에 담긴 토큰정보를 사용해 기존 사용자 정보를 조회하였으나, 존재하지 않는 경우 발생. 또는 최초 소셜로그인 시도하였으나 가입한 회원이 아니라면 해당 오류 * 발생 * - * @see com.inhabas.api.auth.domain.token.securityFilter; */ - SOCIAL_NOT_FOUND(401, "A004", "기존 회원이 아니거나 회원가입 되지 않은 회원입니다."), JWT_INVALID(401, "A005", "유효하지 않은 토큰입니다."), JWT_EXPIRED(401, "A006", "만료된 토큰입니다."), JWT_MISSING(401, "A007", "토큰이 존재하지 않습니다."), - EXPIRED_REFRESH_TOKEN(401, "A008", "만료된 REFRESH 토큰입니다. 재로그인 해주십시오."), - - // SignUp - SIGNUP_NOT_AVAILABLE(403, "S001", "회원가입 기간이 아닙니다."), - INVALID_SIGNUP_DATE(400, "S002", "등록 마감일이 시작일보다 앞설 수 없습니다."), - INVALID_INTERVIEW_DATE(400, "S003", "면접 마감일이 시작일보다 앞설 수 없습니다."), - INCOMPLETE_INTERVIEW_DATE(400, "S004", "면접 시작일과 종료일 중 하나만 설정되어 있습니다."), - INVALID_ANNOUNCE_DATE(400, "S005", "결과 발표일이 면접 마감일 또는 모집 마감일보다 앞설 수 없습니다."), - NOT_WRITE_PROFILE(400, "S006", "아직 회원 프로필을 생성하지 않아서 회원가입을 마무리 할 수 없습니다."), - NOT_WRITE_ANSWERS(400, "S007", "아직 면접 질문을 작성하지 않아서 회원가입을 마무리 할 수 없습니다."), - - // Board - WRITER_UNMODIFIABLE(403, "B001", "글 작성자를 변경 할 수 없습니다."), - ONLY_WRITER_UPDATE(403, "B002", "글 작성자만 수정 가능합니다."), - - // File - S3_UPLOAD_FAILED(500, "F001", "파일 업로드를 실패했습니다."), - INVALID_FILE_EXTENSION(400, "F002", "유효하지 않은 파일 확장자입니다."), - INVALID_FILE_SIZE(413, "F003", "파일 크기가 최대 허용 한도를 초과했습니다."), - - // Budget - STATUS_NOT_FOLLOW_PROCEDURES(400, "S001", "이전 진행 상태로 되돌리거나 진행 순서를 건너뛸 수 없습니다."), - INVALID_INCOME_OR_OUTCOME(400, "S002", "입금, 출금은 동시에 입력받을 수 없습니다."), - IN_PROCESS_UNMODIFIABLE(403, "S003", "처리 진행 중인 지원서는 수정, 삭제할 수 없습니다."); + EXPIRED_REFRESH_TOKEN(401, "A008", "만료된 REFRESH 토큰입니다. 재로그인 해주십시오."); private final int status; private final String code; From 55cb420fd85f6a348e229bd677e272861ea4878a Mon Sep 17 00:00:00 2001 From: Pochomo Date: Sun, 16 Mar 2025 16:45:00 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=EC=BD=94=EB=93=9C=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InvalidOAuth2InfoException.java | 10 +++++++++ .../businessException/BusinessException.java | 21 +++++++++++++++++++ .../InternalServerException.java | 10 +++++++++ .../InvalidInputException.java | 9 ++++++++ .../businessException/NotFoundException.java | 7 +++++++ .../exception/TokenMissingException.java | 12 +++++++++++ 6 files changed, 69 insertions(+) create mode 100644 module_oauth/src/main/java/com/spoti/api/auth/domain/error/authException/InvalidOAuth2InfoException.java create mode 100644 module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java create mode 100644 module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/InternalServerException.java create mode 100644 module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/InvalidInputException.java create mode 100644 module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/NotFoundException.java create mode 100644 module_oauth/src/main/java/com/spoti/api/auth/domain/token/exception/TokenMissingException.java diff --git a/module_oauth/src/main/java/com/spoti/api/auth/domain/error/authException/InvalidOAuth2InfoException.java b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/authException/InvalidOAuth2InfoException.java new file mode 100644 index 0000000..499d003 --- /dev/null +++ b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/authException/InvalidOAuth2InfoException.java @@ -0,0 +1,10 @@ +package com.spoti.api.auth.domain.error.authException; + +import com.spoti.api.auth.domain.error.ErrorCode; + +public class InvalidOAuth2InfoException extends CustomAuthException { + + public InvalidOAuth2InfoException() { + super(ErrorCode.INVALID_OAUTH2_INFO); + } +} diff --git a/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java new file mode 100644 index 0000000..80df4e5 --- /dev/null +++ b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java @@ -0,0 +1,21 @@ +package com.spoti.api.auth.domain.error.businessException; + +import com.spoti.api.auth.domain.error.ErrorCode; + +import lombok.Getter; + +//부모클래스이자 custonException 클래스 +@Getter +public class BusinessException extends RuntimeException +{ + private final ErrorCode errorCode; + + public BusinessException(String message, ErrorCode errorCode) { + super(message); + this.errorCode = errorCode; + } + public BusinessException(ErrorCode errorCode) { + super(errorCode.getMessage()); // errorcode 에러 메시지를 반환 + this.errorCode = errorCode; + } +} diff --git a/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/InternalServerException.java b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/InternalServerException.java new file mode 100644 index 0000000..41c938f --- /dev/null +++ b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/InternalServerException.java @@ -0,0 +1,10 @@ +package com.spoti.api.auth.domain.error.businessException; + +import com.spoti.api.auth.domain.error.ErrorCode; + +public class InternalServerException extends BusinessException { + + public InternalServerException() { + super(ErrorCode.INTERNAL_SERVER_ERROR); + } +} diff --git a/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/InvalidInputException.java b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/InvalidInputException.java new file mode 100644 index 0000000..f46b438 --- /dev/null +++ b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/InvalidInputException.java @@ -0,0 +1,9 @@ +package com.spoti.api.auth.domain.error.businessException; + +import com.spoti.api.auth.domain.error.ErrorCode; + +public class InvalidInputException extends BusinessException { + public InvalidInputException() { + super(ErrorCode.INVALID_INPUT_VALUE); + } +} diff --git a/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/NotFoundException.java b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/NotFoundException.java new file mode 100644 index 0000000..a32a865 --- /dev/null +++ b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/NotFoundException.java @@ -0,0 +1,7 @@ +package com.spoti.api.auth.domain.error.businessException; + +import com.spoti.api.auth.domain.error.ErrorCode; + +public class NotFoundException extends BusinessException { + public NotFoundException() { super(ErrorCode.NOT_FOUND); } +} diff --git a/module_oauth/src/main/java/com/spoti/api/auth/domain/token/exception/TokenMissingException.java b/module_oauth/src/main/java/com/spoti/api/auth/domain/token/exception/TokenMissingException.java new file mode 100644 index 0000000..251df84 --- /dev/null +++ b/module_oauth/src/main/java/com/spoti/api/auth/domain/token/exception/TokenMissingException.java @@ -0,0 +1,12 @@ +package com.spoti.api.auth.domain.token.exception; + +import com.spoti.api.auth.domain.error.ErrorCode; +import com.spoti.api.auth.domain.error.authException.CustomAuthException; + +public class TokenMissingException extends CustomAuthException { + + //LoginMemberArgumentResolver에서 사용 구현해야함 + public TokenMissingException() { + super(ErrorCode.JWT_MISSING); + } +} From 21d29f9ba8ba52d8d3baae421be3b89bde08eb51 Mon Sep 17 00:00:00 2001 From: Pochomo Date: Sun, 16 Mar 2025 17:19:16 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=EC=A3=BC=EC=84=9D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/error/businessException/BusinessException.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java index 80df4e5..b8972c7 100644 --- a/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java +++ b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java @@ -4,7 +4,10 @@ import lombok.Getter; -//부모클래스이자 custonException 클래스 +/* + 부모클래스이자 custonException 클래스 + Service에서 비즈니스를 처리하기 위한 로직이 구현된 부분 +*/ @Getter public class BusinessException extends RuntimeException { From 3e29bdbc32bc153222aea17f1fa727cacca282fc Mon Sep 17 00:00:00 2001 From: Pochomo Date: Sun, 16 Mar 2025 17:44:32 +0900 Subject: [PATCH 4/4] =?UTF-8?q?=EC=A3=BC=EC=84=9D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/error/businessException/BusinessException.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java index b8972c7..d05619b 100644 --- a/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java +++ b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java @@ -4,10 +4,10 @@ import lombok.Getter; -/* - 부모클래스이자 custonException 클래스 - Service에서 비즈니스를 처리하기 위한 로직이 구현된 부분 -*/ +/** + * 부모클래스이자 custonException 클래스 + * Service에서 비즈니스를 처리하기 위한 로직이 구현된 부분 +**/ @Getter public class BusinessException extends RuntimeException {