소스 업데이트

This commit is contained in:
jade
2026-08-25 13:02:58 +09:00
parent 540faff2d8
commit 5080887f8b
2 changed files with 17 additions and 14 deletions

View File

@@ -1,40 +1,43 @@
package io.shinhanlife.dat.lib.mcp; package io.shinhanlife.dat.lib.mcp;
import java.io.IOException; import java.io.IOException;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException; import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component; 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.mci.AxhubSessionService;
import io.shinhanlife.dat.lib.session.dto.SessionDto; import io.shinhanlife.dat.lib.session.dto.SessionDto;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
/** Captures optional correlation and employee headers for an MCP HTTP call and creates mock session. */ /** Captures optional correlation and employee headers for an MCP HTTP call and creates mock session. */
@Component @Component
public class McpRequestHeaderFilter extends OncePerRequestFilter { public class McpRequestHeaderFilter implements Filter {
@Autowired(required = false) @Autowired(required = false)
private AxhubSessionService sessionService; private AxhubSessionService sessionService;
@Override @Override
protected boolean shouldNotFilter(HttpServletRequest request) { public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain)
return !request.getRequestURI().endsWith("/mcp"); 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"); String empNo = request.getHeader("employee-no");
McpRequestHeaderContext.set(new McpRequestHeaders( McpRequestHeaderContext.set(new McpRequestHeaders(
request.getHeader("x-request-id"), request.getHeader("x-request-id"),
request.getHeader("guid"), request.getHeader("guid"),
request.getHeader("mcp-session-id"), request.getHeader("mcp-session-id"),
empNo, empNo,
request.getHeader("virtual-employee-no"))); request.getHeader("virtual-employee-no")));
// Fetch session info via MCI using employee-no (Only if sessionService is available, e.g. in Tool Pods) // 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()) { if (sessionService != null && empNo != null && !empNo.isEmpty()) {
SessionDto sessionDto = sessionService.fetchUserSession(empNo); SessionDto sessionDto = sessionService.fetchUserSession(empNo);
@@ -43,7 +46,7 @@ public class McpRequestHeaderFilter extends OncePerRequestFilter {
request.setAttribute("userInfo", sessionDto); request.setAttribute("userInfo", sessionDto);
} }
} }
try { try {
filterChain.doFilter(request, response); filterChain.doFilter(request, response);
} finally { } finally {

View File

@@ -1,4 +1,4 @@
### 대내 MCI 샘플 툴(send_mci_sample) 테스트 dlqh### 대내 MCI 샘플 툴(send_mci_sample) 테스트
# 이 스크립트는 IntelliJ IDEA의 HTTP Client 플러그인을 위한 테스트 파일입니다. # 이 스크립트는 IntelliJ IDEA의 HTTP Client 플러그인을 위한 테스트 파일입니다.
# 1. 서버(Gateway 및 Tool 모듈)를 먼저 실행해 주세요. # 1. 서버(Gateway 및 Tool 모듈)를 먼저 실행해 주세요.
# 2. 아래 초록색 플레이(▶) 버튼을 누르면 툴 함수가 호출됩니다! # 2. 아래 초록색 플레이(▶) 버튼을 누르면 툴 함수가 호출됩니다!