| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package com.dk.common.infrastructure.config;
- import feign.RequestInterceptor;
- import feign.RequestTemplate;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.web.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- import javax.servlet.http.HttpServletRequest;
- /**
- * @author H_x_d
- * @date_time 2020-09-17 10:36
- * @description Feign配置文件
- */
- @Configuration
- public class FeignConfiguration implements RequestInterceptor {
- @Override
- public void apply(RequestTemplate requestTemplate) {
- ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
- .getRequestAttributes();
- HttpServletRequest request;
- if (attributes != null) {
- request = attributes.getRequest();
- requestTemplate.header("Authorization", request.getHeader("Authorization"));
- if (request.getRequestURI().contains("/register_company") && request.getAttribute("svcCode")!=null) {
- String svcCode = request.getAttribute("svcCode").toString();
- //例
- //@PostMapping("//" + "mdm-server-$CLUSTER_ID" + Constant.USER+"/get_current")
- String url = requestTemplate.url();
- //将$CLUSTER_ID替换为集群名称
- if (url.contains("$CLUSTER_ID")) {
- url = url.replace("$CLUSTER_ID", svcCode);
- requestTemplate.uri(url);
- }
- //添加http前缀
- if (url.startsWith("//")) {
- url = "http:" + url;
- requestTemplate.target(url);
- requestTemplate.uri("");
- }
- }
- }
- }
- }
|