콘솔에러 안찍히게

This commit is contained in:
yoon 2025-03-18 10:24:13 +09:00
parent 09d656ee5b
commit 352dc770ee

View File

@ -15,8 +15,6 @@
package io.company.localhost.common.security.handler; package io.company.localhost.common.security.handler;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import io.company.localhost.common.dto.ApiResponse;
import io.company.localhost.common.exception.code.UserErrorCode;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
@ -26,28 +24,42 @@ import org.springframework.security.web.authentication.AuthenticationFailureHand
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@Component("failHandler") @Component("failHandler")
public class MemberAuthFailureHandler implements AuthenticationFailureHandler { public class MemberAuthFailureHandler implements AuthenticationFailureHandler {
@Override @Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException { public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException {
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); response.setStatus(HttpServletResponse.SC_OK);
response.setContentType(MediaType.APPLICATION_JSON_VALUE); response.setContentType(MediaType.APPLICATION_JSON_VALUE);
ApiResponse<?> res = UserErrorCode.BAD_CREDENTIAL.getApiResponse(); Map<String, Object> responseMap = new HashMap<>();
responseMap.put("success", false); // 로그인 실패 표시
String message = exception.getMessage(); String message = exception.getMessage();
String errorCode;
String errorMessage;
if (exception instanceof BadCredentialsException || message.startsWith("NOT_FOUND")) { if (exception instanceof BadCredentialsException || message.startsWith("NOT_FOUND")) {
res = UserErrorCode.USER_NOT_FOUND.getApiResponse(); errorCode = "USER_NOT_FOUND";
errorMessage = "아이디 또는 비밀번호가 일치하지 않습니다.";
} else if (message.startsWith("NOT_AUTHORIZED")) { } else if (message.startsWith("NOT_AUTHORIZED")) {
res = UserErrorCode.NOT_AUTHORIZED.getApiResponse(); errorCode = "NOT_AUTHORIZED";
errorMessage = "접근 권한이 없습니다.";
} else if (message.startsWith("EXIT")) { } else if (message.startsWith("EXIT")) {
res = UserErrorCode.EXIT_USER.getApiResponse(); errorCode = "EXIT_USER";
errorMessage = "탈퇴한 사용자입니다.";
} else {
errorCode = "BAD_CREDENTIAL";
errorMessage = "인증에 실패했습니다.";
} }
response.getWriter().write(mapper.writeValueAsString(res)); responseMap.put("code", errorCode);
responseMap.put("message", errorMessage);
response.getWriter().write(mapper.writeValueAsString(responseMap));
} }
} }