From effa0e2092b434dbd24c18894f92030f63efe949 Mon Sep 17 00:00:00 2001 From: "semin.baek" Date: Fri, 27 Jun 2025 10:13:29 +0900 Subject: [PATCH] =?UTF-8?q?DFXAgent,=20DFXConsole=20=EC=9D=B4=EC=99=B8?= =?UTF-8?q?=EC=9D=98=20UserAgent=EB=8A=94=20Forbidden=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bsmlab/dfx/agent/config/AccessFilter.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/main/java/com/bsmlab/dfx/agent/config/AccessFilter.java diff --git a/src/main/java/com/bsmlab/dfx/agent/config/AccessFilter.java b/src/main/java/com/bsmlab/dfx/agent/config/AccessFilter.java new file mode 100644 index 0000000..3158fd1 --- /dev/null +++ b/src/main/java/com/bsmlab/dfx/agent/config/AccessFilter.java @@ -0,0 +1,33 @@ +package com.bsmlab.dfx.agent.config; + +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +@Component +public class AccessFilter implements Filter { + @Override + public void init(FilterConfig filterConfig) throws ServletException { + Filter.super.init(filterConfig); + } + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + HttpServletRequest request = (HttpServletRequest) servletRequest; + String userAgent = request.getHeader("User-Agent"); + if(!(userAgent != null && (userAgent.contains("DFXAgent") || userAgent.contains("DFXConsole")))) { + HttpServletResponse response = (HttpServletResponse) servletResponse; + response.sendError(HttpServletResponse.SC_FORBIDDEN, "Forbidden"); + return; + } + filterChain.doFilter(servletRequest, servletResponse); + } + + @Override + public void destroy() { + Filter.super.destroy(); + } +}