From 5080887f8bb6d3873ff31941db4c6c71a58df973 Mon Sep 17 00:00:00 2001 From: jade Date: Tue, 25 Aug 2026 13:02:58 +0900 Subject: [PATCH] =?UTF-8?q?=EC=86=8C=EC=8A=A4=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dat/lib/mcp/McpRequestHeaderFilter.java | 29 ++++++++++--------- mci_sample_test.http | 2 +- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/dat-was-lib/src/main/java/io/shinhanlife/dat/lib/mcp/McpRequestHeaderFilter.java b/dat-was-lib/src/main/java/io/shinhanlife/dat/lib/mcp/McpRequestHeaderFilter.java index 50bce07f1..dcc7e0595 100644 --- a/dat-was-lib/src/main/java/io/shinhanlife/dat/lib/mcp/McpRequestHeaderFilter.java +++ b/dat-was-lib/src/main/java/io/shinhanlife/dat/lib/mcp/McpRequestHeaderFilter.java @@ -1,40 +1,43 @@ package io.shinhanlife.dat.lib.mcp; import java.io.IOException; -import jakarta.servlet.FilterChain; -import jakarta.servlet.ServletException; + +import jakarta.servlet.*; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; -import org.springframework.web.filter.OncePerRequestFilter; import io.shinhanlife.dat.lib.session.mci.AxhubSessionService; import io.shinhanlife.dat.lib.session.dto.SessionDto; import org.springframework.beans.factory.annotation.Autowired; /** Captures optional correlation and employee headers for an MCP HTTP call and creates mock session. */ @Component -public class McpRequestHeaderFilter extends OncePerRequestFilter { +public class McpRequestHeaderFilter implements Filter { @Autowired(required = false) private AxhubSessionService sessionService; @Override - protected boolean shouldNotFilter(HttpServletRequest request) { - return !request.getRequestURI().endsWith("/mcp"); - } + public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain) + throws IOException, ServletException { + + HttpServletRequest request = (HttpServletRequest) req; + HttpServletResponse response = (HttpServletResponse) res; + + if (!request.getRequestURI().contains("/mcp")) { + filterChain.doFilter(request, response); + return; + } - @Override - protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, - FilterChain filterChain) throws ServletException, IOException { String empNo = request.getHeader("employee-no"); - + McpRequestHeaderContext.set(new McpRequestHeaders( request.getHeader("x-request-id"), request.getHeader("guid"), request.getHeader("mcp-session-id"), empNo, request.getHeader("virtual-employee-no"))); - + // Fetch session info via MCI using employee-no (Only if sessionService is available, e.g. in Tool Pods) if (sessionService != null && empNo != null && !empNo.isEmpty()) { SessionDto sessionDto = sessionService.fetchUserSession(empNo); @@ -43,7 +46,7 @@ public class McpRequestHeaderFilter extends OncePerRequestFilter { request.setAttribute("userInfo", sessionDto); } } - + try { filterChain.doFilter(request, response); } finally { diff --git a/mci_sample_test.http b/mci_sample_test.http index fd34ef20e..b27b9bb40 100644 --- a/mci_sample_test.http +++ b/mci_sample_test.http @@ -1,4 +1,4 @@ -### 대내 MCI 샘플 툴(send_mci_sample) 테스트 +dlqh### 대내 MCI 샘플 툴(send_mci_sample) 테스트 # 이 스크립트는 IntelliJ IDEA의 HTTP Client 플러그인을 위한 테스트 파일입니다. # 1. 서버(Gateway 및 Tool 모듈)를 먼저 실행해 주세요. # 2. 아래 초록색 플레이(▶) 버튼을 누르면 툴 함수가 호출됩니다!