|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+package com.chinaitop.agile;
|
|
|
2
|
+
|
|
|
3
|
+import java.util.Enumeration;
|
|
|
4
|
+
|
|
|
5
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
6
|
+
|
|
|
7
|
+import org.springframework.cloud.openfeign.EnableFeignClients;
|
|
|
8
|
+import org.springframework.context.annotation.Configuration;
|
|
|
9
|
+import org.springframework.web.context.request.RequestAttributes;
|
|
|
10
|
+import org.springframework.web.context.request.RequestContextHolder;
|
|
|
11
|
+import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
12
|
+
|
|
|
13
|
+import feign.RequestInterceptor;
|
|
|
14
|
+import feign.RequestTemplate;
|
|
|
15
|
+
|
|
|
16
|
+@Configuration
|
|
|
17
|
+@EnableFeignClients(basePackages = "com.chinaitop.agile.feignService")
|
|
|
18
|
+public class FeignClientsConfigurationCustom implements RequestInterceptor{
|
|
|
19
|
+
|
|
|
20
|
+ @Override
|
|
|
21
|
+ public void apply(RequestTemplate template) {
|
|
|
22
|
+
|
|
|
23
|
+ RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
|
|
|
24
|
+ if (requestAttributes == null) {
|
|
|
25
|
+ return;
|
|
|
26
|
+ }
|
|
|
27
|
+
|
|
|
28
|
+ HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
|
|
|
29
|
+ Enumeration<String> headerNames = request.getHeaderNames();
|
|
|
30
|
+ if (headerNames != null) {
|
|
|
31
|
+ while (headerNames.hasMoreElements()) {
|
|
|
32
|
+ String name = headerNames.nextElement();
|
|
|
33
|
+ Enumeration<String> values = request.getHeaders(name);
|
|
|
34
|
+ while (values.hasMoreElements()) {
|
|
|
35
|
+ String value = values.nextElement();
|
|
|
36
|
+ template.header(name, value);
|
|
|
37
|
+ }
|
|
|
38
|
+ }
|
|
|
39
|
+ }
|
|
|
40
|
+
|
|
|
41
|
+ }
|
|
|
42
|
+}
|