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