package com.vincent.rsf.server.common.interceptor.severlet; import org.springframework.stereotype.Component; import org.springframework.web.filter.OncePerRequestFilter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @Component public class CustomParameterFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { ParameterAddableRequest wrappedRequest = new ParameterAddableRequest(request); // 添加系统级参数 wrappedRequest.addParameter("systemVersion", "1.0.0"); wrappedRequest.addParameter("environment", System.getProperty("spring.profiles.active", "default")); // 添加请求追踪信息 addTraceInfo(wrappedRequest); filterChain.doFilter(wrappedRequest, response); } private void addTraceInfo(ParameterAddableRequest request) { String traceId = request.getHeader("X-Trace-Id"); // if (traceId == null || traceId.isEmpty()) { // traceId = UUID.randomUUID().toString(); // } request.addParameter("traceId", "traceId"); } }