blade-x框架在feign请求的请求头中统一添加参数

问题:使用配置类直接实现RequestInterceptor时会将丢失原来需要用到Authorization和Blade-Auth参数,可能会造成已有接口的报错

解决方法:

1.继承BladeFeignRequestInterceptor类型

@Data
@Configuration
public class FeignConfig extends BladeFeignRequestInterceptor {

	private final FeignProperties feignProperties;

	@Override
	public void apply(RequestTemplate requestTemplate) {
		super.apply(requestTemplate);

		// 添加自定义请求头
		requestTemplate.header("a", "a");
		requestTemplate.header("b", "b");
	}
}

 

2.查看BladeFeignRequestInterceptor代码可以看到

public void apply(RequestTemplate requestTemplate) {
        HttpHeaders headers = (HttpHeaders)ThreadLocalUtil.get("bladeContext");
        if (headers != null && !headers.isEmpty()) {
            headers.forEach((key, values) -> {
                values.forEach((value) -> {
                    requestTemplate.header(key, new String[]{value});
                });
            });
        }

    }

所以可以通过设置bladeContext来实现

你可能感兴趣的:(java,前端,服务器)