当前位置: 首页 > 知识库问答 >
问题:

如何排除特定Spring Cloud Feign客户机的RequestInterceptor?

谭泳
2023-03-14
@FeignClient(value = "foo", configuration = FooClientConfig.class)
public interface FooClient {
//operations
}

@Configuration
public class FooClientConfig{

//How do I exclude global interceptors from this client configuration?
}

共有1个答案

云俊名
2023-03-14

解决此问题的一种增强方法是将自定义头传递给请求,如下所示:

@PostMapping("post-path")
ResponseEntity<Void> postRequest(@RequestHeader(HEADER_CLIENT_NAME) String feignClientName, @RequestBody RequestBody requestBody);

我只想在拦截器中设置这个虚假客户机的头。在设置标头之前,拦截器首先检查HEADER_CLIENT_NAME标头是否存在并且是否具有所需的值:

private boolean criteriaMatches(RequestTemplate requestTemplate) {
    Map<String, Collection<String>> headers = requestTemplate.headers();
    return headers.containsKey(HEADER_CLIENT_NAME)
        && headers.get(HEADER_CLIENT_NAME).contains("feign-client-name");
}

因此,您可以在设置基本身份验证之前进行检查。在拦截器中:

@Override
public void apply(RequestTemplate template) {
    if (criteriaMatches(template)) {
        /*apply auth header*/
    }
}
feignClient.postRequest("feign-client-name", postBody);
 类似资料:
  • 在ArchUnit-Test中,是否有可能从分层测试条件中排除特定的类? 希望我能说清楚...

  • 在Jenkins中,当构建失败时,它将从SCM获取罪犯列表,并使用“可编辑电子邮件通知”插件向罪犯发送电子邮件。我的问题是我想把一些用户排除在邮件列表之外。因为他们和那件事毫无关系。 我在詹金斯发现了“被排除的接受者”-

  • 如何才能缓解这种情况?

  • 是否有任何方法可以将配置添加到库中定义的OpenFeign客户机,使其不影响任何其他客户机?

  • 问题内容: 堆栈: Java-1.8.0_91 Scala-2.11.8 库-it.geosolutions.imageio-ext imageio-ext-tiff 1.1.15 我们正在读取许多旧的TIF图像,并且由于某种原因读取的数据高度不一致-出于某些原因,在不同的运行中读取同一图像可能会成功或失败,但是- 代码是这样的: 问题是ImageIO同时初始化2个TIFF读取器 要么 第一个失败

  • 堆栈: Java-1.80_91 Scala-2.11.8 库-it.geosolutions.imageio-extImageio-ext-tiff 1.1.15 我们正在阅读大量旧的TIF图像,由于某些原因,读取高度不一致-由于某些原因,在不同的运行中读取同一图像可能会成功,也可能会失败- 代码如下: 问题是ImageIO同时初始化2个TIFF阅读器 或 第一个失败,第二个工作。如何从Imag