| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- 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"));
- }
- }
- /**
- * @desc : 拦截feign请求
- * @author : 洪旭东
- * @date : 2024-03-12 17:08
- */
- // @Bean
- public RequestInterceptor cloudContextInterceptor() {
- ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
- .getRequestAttributes();
- HttpServletRequest request;
- if (attributes != null) {
- request = attributes.getRequest();
- if ("".equals(request.getRequestURI()) && request.getAttribute("svcCode")!=null) {
- String svcCode = request.getAttribute("svcCode").toString();
- return template -> {
- //例
- //@PostMapping("//" + "mdm-server-$CLUSTER_ID" + Constant.USER+"/get_current")
- String url = template.url();
- //将$CLUSTER_ID替换为集群名称
- if (url.contains("$CLUSTER_ID")) {
- url = url.replace("$CLUSTER_ID", svcCode);
- template.uri(url);
- }
- //添加http前缀
- if (url.startsWith("//")) {
- url = "http:" + url;
- template.target(url);
- template.uri("");
- }
- };
- }
- }
- return requestTemplate -> {};
- }
- }
|