diff --git a/src/main/java/org/myteam/server/global/security/filter/JwtAuthenticationFilter.java b/src/main/java/org/myteam/server/global/security/filter/JwtAuthenticationFilter.java index ff66608b..b9528eec 100644 --- a/src/main/java/org/myteam/server/global/security/filter/JwtAuthenticationFilter.java +++ b/src/main/java/org/myteam/server/global/security/filter/JwtAuthenticationFilter.java @@ -83,8 +83,17 @@ protected void successfulAuthentication(HttpServletRequest request, HttpServletR log.info("successfulAuthentication > publicId : {}", publicId); log.info("successfulAuthentication > status : {}", status); + Collection authorities = authentication.getAuthorities(); + Iterator iterator = authorities.iterator(); + GrantedAuthority auth = iterator.next(); + if (status.equals(PENDING.name())) { log.warn("PENDING 상태인 경우 로그인이 불가능합니다"); + // X-Refresh-Token + String refreshToken = jwtProvider.generateToken(TOKEN_CATEGORY_REFRESH, Duration.ofHours(24), publicId, auth.getAuthority(), status); + String cookieValue = URLEncoder.encode("Bearer " + refreshToken, StandardCharsets.UTF_8); + + response.addCookie(createCookie(REFRESH_TOKEN_KEY, cookieValue, TOKEN_REISSUE_PATH, 5 * 60, true)); sendErrorResponse(response, HttpStatus.LOCKED, "PENDING 상태인 경우 로그인이 불가능합니다"); return; } else if (status.equals(INACTIVE.name())) { @@ -97,10 +106,6 @@ protected void successfulAuthentication(HttpServletRequest request, HttpServletR return; } - Collection authorities = authentication.getAuthorities(); - Iterator iterator = authorities.iterator(); - GrantedAuthority auth = iterator.next(); - // 권한 획득 String role = auth.getAuthority(); diff --git a/src/main/java/org/myteam/server/oauth2/handler/CustomOauth2SuccessHandler.java b/src/main/java/org/myteam/server/oauth2/handler/CustomOauth2SuccessHandler.java index cac3e927..e2b18049 100644 --- a/src/main/java/org/myteam/server/oauth2/handler/CustomOauth2SuccessHandler.java +++ b/src/main/java/org/myteam/server/oauth2/handler/CustomOauth2SuccessHandler.java @@ -70,10 +70,7 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo String refreshToken = jwtProvider.generateToken(TOKEN_CATEGORY_REFRESH, Duration.ofDays(7), member.getPublicId(), member.getRole().name(), member.getStatus().name()); String cookieValue = URLEncoder.encode("Bearer " + refreshToken, StandardCharsets.UTF_8); - // redirect 순간 Header 값 날아감 - // response.addHeader(ACCESS_TOKEN_KEY, "Bearer " + accessToken); - response.addCookie(createCookie(REFRESH_TOKEN_KEY, cookieValue, TOKEN_REISSUE_PATH, 24 * 60 * 60, true)); - response.addCookie(createCookie(REFRESH_TOKEN_KEY, cookieValue, LOGOUT_PATH, 24 * 60 * 60, true)); + response.addCookie(createCookie(REFRESH_TOKEN_KEY, cookieValue, TOKEN_REISSUE_PATH, 5 * 60, true)); response.sendRedirect(frontUrl + "?status=" + status); return; } else if (status.equals(INACTIVE.name())) {