Skip to content

Commit

Permalink
refactor : Error 로그 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
imenuuu committed May 3, 2024
1 parent d55eb48 commit 60d7b00
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 78 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package com.example.wineyapi.security;

import static com.example.wineydomain.user.exception.UserAuthErrorCode.*;

import com.example.wineycommon.exception.errorcode.CommonResponseStatus;
import com.example.wineydomain.user.exception.UserAuthErrorCode;

import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.security.core.AuthenticationException;
Expand All @@ -10,56 +14,60 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.rmi.ServerException;

import lombok.extern.slf4j.Slf4j;

@Component
@Slf4j
public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint {

@Override
public void commence(HttpServletRequest request,
HttpServletResponse response,
AuthenticationException authException) throws IOException, ServerException {
HttpServletResponse response,
AuthenticationException authException) throws IOException, ServerException {
// 유효한 자격증명을 제공하지 않고 접근하려 할때 401
String exception = (String) request.getAttribute("exception");

CommonResponseStatus errorCode;

UserAuthErrorCode errorCode;

/**
* 토큰이 없는 경우 예외처리
*/
if(exception == null) {
errorCode = CommonResponseStatus.UNAUTHORIZED_EXCEPTION;
setResponse(response, errorCode);
errorCode = UNAUTHORIZED_EXCEPTION;
setResponse(response, errorCode, request);
return;
}

/**
* 토큰이 만료된 경우 예외처리
*/
if(exception.equals("NotExistUser")){
errorCode = CommonResponseStatus.NOT_EXIST_USER;
setResponse(response, errorCode);
return;
}
else if(exception.equals("ExpiredJwtException")) {
errorCode = CommonResponseStatus.EXPIRED_JWT_EXCEPTION;
setResponse(response, errorCode);
return;
}
else if (exception.equals("MalformedJwtException")){
errorCode= CommonResponseStatus.INVALID_TOKEN_EXCEPTION;
setResponse(response,errorCode);
return;
}
else if(exception.equals("HijackException")){
errorCode =CommonResponseStatus.HIJACK_JWT_TOKEN_EXCEPTION;
setResponse(response,errorCode);
return;
switch (exception) {
case "NotExistUser":
errorCode = NOT_EXIST_USER;
setResponse(response, errorCode, request);
return;
case "ExpiredJwtException":
errorCode = EXPIRED_JWT_EXCEPTION;
setResponse(response, errorCode, request);
return;
case "MalformedJwtException":
errorCode = INVALID_TOKEN_EXCEPTION;
setResponse(response, errorCode, request);
return;
case "HijackException":
errorCode = HIJACK_JWT_TOKEN_EXCEPTION;
setResponse(response, errorCode, request);
return;
case "NoSuchElementException":
errorCode = NOT_EXISTS_USER_HAVE_TOKEN;
setResponse(response, errorCode, request);
return;
case "NotUserActiveException":
errorCode = NOT_USER_ACTIVE;
setResponse(response, errorCode, request);
return;
}
}

private void setResponse(HttpServletResponse response, CommonResponseStatus errorCode) throws IOException {
private void setResponse(HttpServletResponse response, UserAuthErrorCode errorCode, HttpServletRequest request) throws IOException {
JSONObject json = new JSONObject();
response.setContentType("application/json;charset=UTF-8");
response.setCharacterEncoding("utf-8");
Expand All @@ -73,6 +81,18 @@ private void setResponse(HttpServletResponse response, CommonResponseStatus erro
e.printStackTrace();
}


String requestUri = request.getRequestURI();
if(!requestUri.equals("/error")) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
pw.append("\n==========================!!!JWT ERROR TRACE!!!==========================\n");
pw.append("REQUEST_URI : ").append(request.getRequestURI()).append(" ").append(request.getMethod()).append("\n");
pw.append("ERROR_CODE : ").append(errorCode.getCode()).append("\n");
pw.append("ERROR_MESSAGE : ").append(errorCode.getMessage()).append("\n");
pw.append("=========================================================================");
log.error(sw.toString());
}
response.getWriter().print(json);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ public enum UserAuthErrorCode implements BaseErrorCode {
INVALID_TOKEN(UNAUTHORIZED, "AUTH013", "JWT 토큰이 잘못되었습니다."),

@ExplainError("해당 유저에게 URI 접근권한이 없을 때")
NOT_ALLOWED_ACCESS(UNAUTHORIZED,"U010","접근 권한이 없습니다.");
NOT_ALLOWED_ACCESS(UNAUTHORIZED,"U010","접근 권한이 없습니다."),
NOT_USER_ACTIVE(UNAUTHORIZED,"U011","유저가 활성화 되어있지 않습니다.");


private final HttpStatus httpStatus;
Expand Down

0 comments on commit 60d7b00

Please sign in to comment.