我需要向一些新的伪装客户端添加自定义授权标头。因此,我编写了一个RequestInterceptor并成功了,但要点是我不希望此自定义RequestInterceptor影响我的旧客户端。我尝试使用template.url()方法进行过滤,但它没有提供请求的完整网址,而仅包含客户端方法的网址(不包含在客户端类上方宣布的网址和路径)。 我的问题是,我该如何瞄准拦截器?
这是我的配置:
@Configuration
open class FeignCustomConfiguration {
private fun generateToken(): String { ... }
@Bean
open fun requestInterceptor(): RequestInterceptor {
return RequestInterceptor {
it.header("Authorization", generateToken())
}
}
}
答案 0 :(得分:2)
我找到了解决方案。
对于每个FeignClient,都有一个configuration
选项,它接受一系列的类。在kotlin中为配置分配类的语法如下:
@FeignClient(
name = "feign-client",
path = "/path",
url = "https://example.com",
configuration = [FeignCustomConfiguration::class]
)
interface FeignCustomClient {
...
}
使用此分配,每个FeignClient都有其自己的配置,RequestInterceptor不会处理其他客户端。