From 280ad616840a5db1ba59ac35f509c5d55f8b01ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=8B=E1=85=B5=E1=84=80=E1=85=AA=E1=86=BC=E1=84=92?= =?UTF-8?q?=E1=85=AE=E1=86=AB?= Date: Fri, 17 May 2024 13:48:38 +0900 Subject: [PATCH 1/3] =?UTF-8?q?Feat=20:=20HttpRequestWrapperFilter=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../restaurant/filter/HttpRequestWrapperFilter.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/capstone/restaurant/filter/HttpRequestWrapperFilter.java diff --git a/src/main/java/capstone/restaurant/filter/HttpRequestWrapperFilter.java b/src/main/java/capstone/restaurant/filter/HttpRequestWrapperFilter.java new file mode 100644 index 0000000..83964ee --- /dev/null +++ b/src/main/java/capstone/restaurant/filter/HttpRequestWrapperFilter.java @@ -0,0 +1,13 @@ +package capstone.restaurant.filter; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class HttpRequestWrapperFilter { + + +} + + From 6c62a7601e01aeb46ff641c51ad6ec478263add1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=8B=E1=85=B5=E1=84=80=E1=85=AA=E1=86=BC=E1=84=92?= =?UTF-8?q?=E1=85=AE=E1=86=AB?= Date: Fri, 17 May 2024 16:18:11 +0900 Subject: [PATCH 2/3] =?UTF-8?q?Feat=20:=20HttpRequestWrapperFilter=20?= =?UTF-8?q?=EB=A5=BC=20=ED=86=B5=ED=95=B4=20ContentWrapper=20=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../restaurant/filter/HttpRequestWrapperFilter.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/capstone/restaurant/filter/HttpRequestWrapperFilter.java b/src/main/java/capstone/restaurant/filter/HttpRequestWrapperFilter.java index 83964ee..370d7fe 100644 --- a/src/main/java/capstone/restaurant/filter/HttpRequestWrapperFilter.java +++ b/src/main/java/capstone/restaurant/filter/HttpRequestWrapperFilter.java @@ -1,13 +1,22 @@ package capstone.restaurant.filter; +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import org.springframework.web.util.ContentCachingRequestWrapper; + +import java.io.IOException; @Slf4j @Component -public class HttpRequestWrapperFilter { - +public class HttpRequestWrapperFilter implements Filter { + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + ContentCachingRequestWrapper httpRequest = new ContentCachingRequestWrapper((HttpServletRequest) servletRequest); + filterChain.doFilter(httpRequest , servletResponse); + } } From 8a30ad25113b043efddb9b7d8ece9bc881cd243a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=8B=E1=85=B5=E1=84=80=E1=85=AA=E1=86=BC=E1=84=92?= =?UTF-8?q?=E1=85=AE=E1=86=AB?= Date: Fri, 17 May 2024 16:18:19 +0900 Subject: [PATCH 3/3] =?UTF-8?q?Feat=20:=20Logger=20=EC=9E=AC=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interceptor/LoggerInterceptor.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/capstone/restaurant/interceptor/LoggerInterceptor.java b/src/main/java/capstone/restaurant/interceptor/LoggerInterceptor.java index e2c58f7..6d333c9 100644 --- a/src/main/java/capstone/restaurant/interceptor/LoggerInterceptor.java +++ b/src/main/java/capstone/restaurant/interceptor/LoggerInterceptor.java @@ -1,29 +1,33 @@ package capstone.restaurant.interceptor; +import jakarta.servlet.ServletInputStream; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.servlet.DispatcherServlet; import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.util.ContentCachingRequestWrapper; + +import java.util.stream.Stream; @Slf4j @Component public class LoggerInterceptor implements HandlerInterceptor { @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - log.info("URL : {} , method : {} , body : {}" , request.getRequestURL() , request.getMethod()); - return true; - } + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler , Exception ex) throws Exception { - @Override - public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { - if(ex != null){ - log.error("에러 발생"); + ContentCachingRequestWrapper requestInfo = (ContentCachingRequestWrapper) request; + String requestBody = requestInfo.getContentAsString(); + + if(200 <= response.getStatus() && response.getStatus() < 300){ + log.info("url = {} , method = {} , body = {}" , request.getRequestURL() , request.getMethod() , requestBody); }else{ - log.info("에러 없음"); + log.error("url = {} , method = {} , status = {} , body = {}" , request.getRequestURL() , request.getMethod() , response.getStatus() , requestBody); } } } +