From 60bd890ad68e92c724263269e5a75ecd222afd58 Mon Sep 17 00:00:00 2001 From: csct3434 Date: Fri, 24 May 2024 17:25:45 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=95=A1=EC=84=B8=EC=8A=A4=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20=EC=84=9C=EB=B8=94=EB=A6=BF=20=ED=95=84=ED=84=B0=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 액세스 로그를 기록하지 않을 요청에 특정 attribute를 추가하는 서블릿 필터 구현 --- .../seasoning/SeasoningApplication.java | 2 ++ .../common/config/AccessLogFilter.java | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/main/java/today/seasoning/seasoning/common/config/AccessLogFilter.java diff --git a/src/main/java/today/seasoning/seasoning/SeasoningApplication.java b/src/main/java/today/seasoning/seasoning/SeasoningApplication.java index 209c8d1..ff36ee8 100644 --- a/src/main/java/today/seasoning/seasoning/SeasoningApplication.java +++ b/src/main/java/today/seasoning/seasoning/SeasoningApplication.java @@ -7,10 +7,12 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.scheduling.annotation.EnableScheduling; @Slf4j @EnableScheduling +@ServletComponentScan @SpringBootApplication public class SeasoningApplication { diff --git a/src/main/java/today/seasoning/seasoning/common/config/AccessLogFilter.java b/src/main/java/today/seasoning/seasoning/common/config/AccessLogFilter.java new file mode 100644 index 0000000..13f8c2e --- /dev/null +++ b/src/main/java/today/seasoning/seasoning/common/config/AccessLogFilter.java @@ -0,0 +1,26 @@ +package today.seasoning.seasoning.common.config; + + +import java.io.IOException; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.annotation.WebFilter; +import org.springframework.beans.factory.annotation.Value; + +@WebFilter(urlPatterns = "/monitoring/*") +public class AccessLogFilter implements Filter { + + @Value("${server.tomcat.accesslog.condition-unless}") + private String conditionUnlessKey; + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws ServletException, IOException { + request.setAttribute(conditionUnlessKey, conditionUnlessKey); + chain.doFilter(request, response); + } + +}