Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

9주차 미션 / 서버 3조 김민석 #14

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions src/main/java/kuit/server/KuitServerApplication.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package kuit.server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class KuitServerApplication {

public static void main(String[] args) {
SpringApplication.run(KuitServerApplication.class, args);
}

}
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package kuit3.backend.common.argument_resolver;
package kuit.server.common.argument_resolver;

import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.MethodParameter;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
Expand All @@ -13,18 +12,21 @@
@Slf4j
@Component
public class JwtAuthHandlerArgumentResolver implements HandlerMethodArgumentResolver {

@Override
public boolean supportsParameter(MethodParameter parameter) {
boolean hasAnnotation = parameter.hasParameterAnnotation(PreAuthorize.class);
log.info("[JwtAuthHandlerArgumentResolver.supportsParameter]");
boolean hasAnnotation = parameter.hasParameterAnnotation(PreAuthorizeUser.class);
boolean hasType = long.class.isAssignableFrom(parameter.getParameterType());
log.info("hasAnnotation={}, hasType={}, hasAnnotation && hasType={}", hasAnnotation, hasType, hasAnnotation&&hasType);
log.info("hasAnnotation={} hasType={}",hasAnnotation,hasType);
return hasAnnotation && hasType;
}

@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) {
log.info("[JwtAuthHandlerArgumentResolver.resolveArgument]");
HttpServletRequest request = (HttpServletRequest) webRequest.getNativeRequest();
log.info("userId={}", request.getAttribute("userId"));
return request.getAttribute("userId");
}
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package kuit3.backend.common.argument_resolver;
package kuit.server.common.argument_resolver;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand All @@ -7,5 +7,5 @@

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface PreAuthorize {
public @interface PreAuthorizeUser {
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kuit3.backend.common.exception;
package kuit.server.common.exception;

import kuit3.backend.common.response.status.ResponseStatus;
import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
Expand All @@ -12,4 +12,5 @@ public BadRequestException(ResponseStatus exceptionStatus) {
super(exceptionStatus.getMessage());
this.exceptionStatus = exceptionStatus;
}

}
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package kuit3.backend.common.exception;
package kuit.server.common.exception;

import kuit3.backend.common.response.status.ResponseStatus;
import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
public class DatabaseException extends RuntimeException{
public class DatabaseException extends RuntimeException {

private final ResponseStatus exceptionStatus;

public DatabaseException(ResponseStatus exceptionStatus) {
super(exceptionStatus.getMessage());
this.exceptionStatus = exceptionStatus;
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kuit3.backend.common.exception;
package kuit.server.common.exception;

import kuit3.backend.common.response.status.ResponseStatus;
import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
Expand All @@ -12,4 +12,5 @@ public InternalServerErrorException(ResponseStatus exceptionStatus) {
super(exceptionStatus.getMessage());
this.exceptionStatus = exceptionStatus;
}
}

}
20 changes: 20 additions & 0 deletions src/main/java/kuit/server/common/exception/MenuException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package kuit.server.common.exception;

import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
public class MenuException extends RuntimeException {
private final ResponseStatus exceptionStatus;

public MenuException(ResponseStatus exceptionStatus) {
super(exceptionStatus.getMessage());
this.exceptionStatus = exceptionStatus;
}

public MenuException(ResponseStatus exceptionStatus, String message) {
super(message);
this.exceptionStatus = exceptionStatus;
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kuit3.backend.common.exception;
package kuit.server.common.exception;

import kuit3.backend.common.response.status.ResponseStatus;
import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
Expand All @@ -17,4 +17,5 @@ public UserException(ResponseStatus exceptionStatus, String message) {
super(message);
this.exceptionStatus = exceptionStatus;
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kuit3.backend.common.exception.jwt.bad_request;
package kuit.server.common.exception.jwt.bad_request;

import kuit3.backend.common.response.status.ResponseStatus;
import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
Expand All @@ -12,4 +12,5 @@ public JwtBadRequestException(ResponseStatus exceptionStatus) {
super(exceptionStatus.getMessage());
this.exceptionStatus = exceptionStatus;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kuit3.backend.common.exception.jwt.bad_request;
package kuit.server.common.exception.jwt.bad_request;

import kuit3.backend.common.response.status.ResponseStatus;
import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
Expand All @@ -12,4 +12,5 @@ public JwtNoTokenException(ResponseStatus exceptionStatus) {
super(exceptionStatus);
this.exceptionStatus = exceptionStatus;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kuit3.backend.common.exception.jwt.bad_request;
package kuit.server.common.exception.jwt.bad_request;

import kuit3.backend.common.response.status.ResponseStatus;
import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
Expand All @@ -12,4 +12,5 @@ public JwtUnsupportedTokenException(ResponseStatus exceptionStatus) {
super(exceptionStatus);
this.exceptionStatus = exceptionStatus;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kuit3.backend.common.exception.jwt.unauthorized;
package kuit.server.common.exception.jwt.unauthorized;

import kuit3.backend.common.response.status.ResponseStatus;
import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
Expand All @@ -12,4 +12,5 @@ public JwtExpiredTokenException(ResponseStatus exceptionStatus) {
super(exceptionStatus);
this.exceptionStatus = exceptionStatus;
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kuit3.backend.common.exception.jwt.unauthorized;
package kuit.server.common.exception.jwt.unauthorized;

import kuit3.backend.common.response.status.ResponseStatus;
import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
Expand All @@ -12,4 +12,5 @@ public JwtInvalidTokenException(ResponseStatus exceptionStatus) {
super(exceptionStatus);
this.exceptionStatus = exceptionStatus;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kuit3.backend.common.exception.jwt.unauthorized;
package kuit.server.common.exception.jwt.unauthorized;

import kuit3.backend.common.response.status.ResponseStatus;
import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
Expand All @@ -12,4 +12,5 @@ public JwtMalformedTokenException(ResponseStatus exceptionStatus) {
super(exceptionStatus);
this.exceptionStatus = exceptionStatus;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package kuit3.backend.common.exception.jwt.unauthorized;
package kuit.server.common.exception.jwt.unauthorized;

import kuit3.backend.common.response.status.ResponseStatus;
import kuit.server.common.response.status.ResponseStatus;
import lombok.Getter;

@Getter
Expand All @@ -12,4 +12,5 @@ public JwtUnauthorizedTokenException(ResponseStatus exceptionStatus) {
super(exceptionStatus.getMessage());
this.exceptionStatus = exceptionStatus;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package kuit3.backend.common.exception_handler;
package kuit.server.common.exception_handler;

import jakarta.validation.ConstraintViolationException;
import kuit3.backend.common.exception.BadRequestException;
import kuit3.backend.common.exception.InternalServerErrorException;
import kuit3.backend.common.response.BaseErrorResponse;
import kuit.server.common.exception.BadRequestException;
import kuit.server.common.exception.InternalServerErrorException;
import kuit.server.common.response.BaseErrorResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.TypeMismatchException;
import org.springframework.http.HttpStatus;
Expand All @@ -13,7 +13,7 @@
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.NoHandlerFoundException;

import static kuit3.backend.common.response.status.BaseExceptionResponseStatus.*;
import static kuit.server.common.response.status.BaseExceptionResponseStatus.*;

@Slf4j
@RestControllerAdvice
Expand Down Expand Up @@ -63,4 +63,4 @@ public BaseErrorResponse handle_RuntimeException(Exception e) {
return new BaseErrorResponse(SERVER_ERROR);
}

}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package kuit3.backend.common.exception_handler;
package kuit.server.common.exception_handler;

import jakarta.annotation.Priority;
import kuit3.backend.common.response.BaseErrorResponse;
import kuit.server.common.response.BaseErrorResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.dao.DataAccessException;
import org.springframework.http.HttpStatus;
Expand All @@ -10,8 +10,8 @@
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import static kuit3.backend.common.response.status.BaseExceptionResponseStatus.BAD_SQL_GRAMMAR;
import static kuit3.backend.common.response.status.BaseExceptionResponseStatus.DATABASE_ERROR;
import static kuit.server.common.response.status.BaseExceptionResponseStatus.BAD_SQL_GRAMMAR;
import static kuit.server.common.response.status.BaseExceptionResponseStatus.DATABASE_ERROR;

@Slf4j
@Priority(0)
Expand All @@ -31,4 +31,5 @@ public BaseErrorResponse handle_DataAccessException(DataAccessException e) {
log.error("[handle_DataAccessException]", e);
return new BaseErrorResponse(DATABASE_ERROR);
}

}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package kuit3.backend.common.exception_handler;
package kuit.server.common.exception_handler;

import jakarta.annotation.Priority;
import kuit3.backend.common.exception.jwt.bad_request.JwtBadRequestException;
import kuit3.backend.common.exception.jwt.unauthorized.JwtUnauthorizedTokenException;
import kuit3.backend.common.response.BaseErrorResponse;
import kuit.server.common.exception.jwt.bad_request.JwtBadRequestException;
import kuit.server.common.exception.jwt.unauthorized.JwtUnauthorizedTokenException;
import kuit.server.common.response.BaseErrorResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
Expand All @@ -28,4 +28,5 @@ public BaseErrorResponse handle_JwtUnauthorizedException(JwtUnauthorizedTokenExc
log.error("[handle_JwtUnauthorizedException]", e);
return new BaseErrorResponse(e.getExceptionStatus());
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package kuit.server.common.exception_handler;

import jakarta.annotation.Priority;
import kuit.server.common.exception.MenuException;
import kuit.server.common.response.BaseErrorResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import static kuit.server.common.response.status.BaseExceptionResponseStatus.INVALID_MENU_VALUE;

@Slf4j
@Priority(0)
@RestControllerAdvice
public class MenuExceptionControllerAdvice {
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(MenuException.class)
public BaseErrorResponse handle_MenuException(MenuException e) {
log.error("[handle_MenuException]", e);
return new BaseErrorResponse(INVALID_MENU_VALUE, e.getMessage());
}
}
Loading