Skip to content

Commit dcd1276

Browse files
authored
Refactor/ec 55 be 로그인 예외처리 리팩토링 (#44)
* [EC-55] refactor: 로그인 예외처리 ENUM 사용 * [EC-55] feat: 토큰 재발급 예외 처리 추가 refresh 토큰 없는 요청에 대한 예외 처리 추가
1 parent ecb3feb commit dcd1276

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

api/src/main/java/org/example/educheck/domain/member/controller/AuthController.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.example.educheck.domain.member.controller;
22

3+
import io.jsonwebtoken.security.SignatureException;
34
import jakarta.servlet.http.HttpServletResponse;
45
import jakarta.validation.Valid;
56
import lombok.RequiredArgsConstructor;
@@ -67,7 +68,12 @@ public ResponseEntity<Object> refreshTokenRotation(
6768
@CookieValue(value = "refresh_token", required = true) String refreshToken,
6869
HttpServletResponse response) {
6970

70-
String email = jwtTokenUtil.getEmail(refreshToken);
71+
String email;
72+
try {
73+
email = jwtTokenUtil.getEmail(refreshToken);
74+
} catch (SignatureException ex) {
75+
throw new LoginValidationException();
76+
}
7177
LoginResponseDto loginResponseDto = authService.refreshTokenRotation(response, email);
7278

7379
return ResponseEntity.status(HttpStatus.OK)

api/src/main/java/org/example/educheck/domain/member/service/AuthService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ public LoginResponseDto refreshTokenRotation(HttpServletResponse response, Strin
134134

135135
Member member = memberRepository.findByEmail(email).orElse(null);
136136
return memberRepository.findLoginResponseDtoByMemberId(member.getId())
137-
.orElseThrow(() -> new LoginValidationException());
137+
.orElseThrow(LoginValidationException::new);
138138

139139

140140
}

api/src/main/java/org/example/educheck/global/common/exception/handler/GlobalExceptionHandler.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.springframework.http.ResponseEntity;
88
import org.springframework.validation.FieldError;
99
import org.springframework.web.bind.MethodArgumentNotValidException;
10+
import org.springframework.web.bind.MissingRequestCookieException;
1011
import org.springframework.web.bind.annotation.ExceptionHandler;
1112
import org.springframework.web.bind.annotation.RestControllerAdvice;
1213

@@ -49,4 +50,12 @@ public ResponseEntity<ApiResponse<Object>> methodArgumentNotValidHandler(
4950
.body(ApiResponse.error(errorMessage,
5051
ErrorCode.INVALID_INPUT.getCode()));
5152
}
53+
54+
@ExceptionHandler(MissingRequestCookieException.class)
55+
public ResponseEntity<ApiResponse<Object>> missingRequestCookieException(MissingRequestCookieException ex) {
56+
return ResponseEntity
57+
.status(ErrorCode.UNAUTHORIZED.getStatus())
58+
.body(ApiResponse.error(ErrorCode.UNAUTHORIZED.getMessage(),
59+
ErrorCode.UNAUTHORIZED.getCode()));
60+
}
5261
}

0 commit comments

Comments
 (0)