刘光辉
11 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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());
                }
            }
        };
    }
}