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");
|
}
|
}
|