forked from kimhyungsik/ax_hub_mcp_tool
소스 업데이트
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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. 아래 초록색 플레이(▶) 버튼을 누르면 툴 함수가 호출됩니다!
|
||||||
|
|||||||
Reference in New Issue
Block a user