diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/filter/HttpTraceLogFilter.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/filter/HttpTraceLogFilter.java index e2612cae2..a248edcf8 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/filter/HttpTraceLogFilter.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/filter/HttpTraceLogFilter.java @@ -7,6 +7,7 @@ import org.apache.skywalking.apm.toolkit.trace.Trace; import org.apache.skywalking.apm.toolkit.trace.TraceContext; import org.slf4j.MDC; import org.springframework.core.Ordered; +import org.springframework.stereotype.Component; import org.springframework.web.filter.OncePerRequestFilter; import javax.servlet.FilterChain; @@ -23,6 +24,7 @@ import java.util.UUID; * @since 2024/2/19 16:23 */ @Slf4j +@Component public class HttpTraceLogFilter extends OncePerRequestFilter implements Ordered { private static final String X_REQUEST_ID = "x-request-id"; @@ -47,6 +49,14 @@ public class HttpTraceLogFilter extends OncePerRequestFilter implements Ordered } else { MDC.put(Constants.CTX_LOG_ID_MDC, ctxLogId); } + + try { + filterChain.doFilter(request, response); + } finally { + response.setHeader(Constants.CTX_LOG_ID_MDC, MDC.get(Constants.CTX_LOG_ID_MDC)); + response.setHeader(X_REQUEST_ID, MDC.get(Constants.CTX_LOG_ID_MDC)); + MDC.clear(); + } } private String getTraceId() {