package jnpf.onlinedev; import feign.RequestInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; /** 将流程入口的审计关联上下文传给内部 Visualdev 表单保存请求。 */ public class VisualdevOnlineApiAuditFeignConfig { private static final String[] AUDIT_HEADERS = { "X-Audit-Biz-Sign", "Jnpf-App-Scope", "App-Code", "Jnpf-Menu-Id" }; @Bean public RequestInterceptor auditRequestHeaderInterceptor() { return template -> { RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); if (!(attributes instanceof ServletRequestAttributes)) { return; } ServletRequestAttributes servletAttributes = (ServletRequestAttributes) attributes; for (String header : AUDIT_HEADERS) { String value = servletAttributes.getRequest().getHeader(header); if (value != null && !value.trim().isEmpty()) { template.header(header, value.trim()); } } }; } }