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; 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..d05619b --- /dev/null +++ b/module_oauth/src/main/java/com/spoti/api/auth/domain/error/businessException/BusinessException.java @@ -0,0 +1,24 @@ +package com.spoti.api.auth.domain.error.businessException; + +import com.spoti.api.auth.domain.error.ErrorCode; + +import lombok.Getter; + +/** + * 부모클래스이자 custonException 클래스 + * Service에서 비즈니스를 처리하기 위한 로직이 구현된 부분 +**/ +@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); + } +}