Commit 5aab4c855b8096422982fcfaa2b9b7dad816dff2
1 parent
386ae849
feign 动态创建client,拦截器执行多次 #2275
有个小Bug issues/I3854N
Showing
2 changed files
with
16 additions
and
15 deletions
ant-design-vue-jeecg/src/views/user/third/JeecgThirdLoginMixin.js
jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/feign/impl/JeecgFeignService.java
... | ... | @@ -35,25 +35,26 @@ public class JeecgFeignService implements IJeecgFeignService { |
35 | 35 | .encoder(encoder) |
36 | 36 | .decoder(decoder) |
37 | 37 | .contract(contract); |
38 | + | |
39 | + builder.requestInterceptor(requestTemplate -> { | |
40 | + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); | |
41 | + if (null != attributes) { | |
42 | + HttpServletRequest request = attributes.getRequest(); | |
43 | + log.info("Feign request: {}", request.getRequestURI()); | |
44 | + // 将token信息放入header中 | |
45 | + String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN); | |
46 | + if(token==null){ | |
47 | + token = request.getParameter("token"); | |
48 | + } | |
49 | + log.info("Feign request token: {}", token); | |
50 | + requestTemplate.header(CommonConstant.X_ACCESS_TOKEN, token); | |
51 | + } | |
52 | + }); | |
38 | 53 | } |
39 | 54 | |
40 | 55 | |
41 | 56 | @Override |
42 | 57 | public <T> T newInstance(Class<T> clientClass, String serviceName) { |
43 | - builder.requestInterceptor(requestTemplate -> { | |
44 | - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); | |
45 | - if (null != attributes) { | |
46 | - HttpServletRequest request = attributes.getRequest(); | |
47 | - log.info("Feign request: {}", request.getRequestURI()); | |
48 | - // 将token信息放入header中 | |
49 | - String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN); | |
50 | - if(token==null){ | |
51 | - token = request.getParameter("token"); | |
52 | - } | |
53 | - log.info("Feign request token: {}", token); | |
54 | - requestTemplate.header(CommonConstant.X_ACCESS_TOKEN, token); | |
55 | - } | |
56 | - }); | |
57 | 58 | return builder.target(clientClass, String.format("http://%s/", serviceName)); |
58 | 59 | } |
59 | 60 | } |
60 | 61 | \ No newline at end of file |
... | ... |