Moh*_*far 12 kotlin spring-boot feign
我需要向一些新的假客户端添加自定义授权标头。所以我编写了一个 RequestInterceptor 并且它起作用了,但重点是我不希望这个自定义 RequestInterceptor 影响我的旧客户端。我尝试使用 template.url() 方法进行过滤,但它没有给我请求的整个 url,它只包含客户端方法 url(不是客户端类上方宣布的 url 和路径)。我的问题是如何瞄准拦截器?
这是我的配置:
@Configuration
open class FeignCustomConfiguration {
private fun generateToken(): String { ... }
@Bean
open fun requestInterceptor(): RequestInterceptor {
return RequestInterceptor {
it.header("Authorization", generateToken())
}
}
}
Run Code Online (Sandbox Code Playgroud)
Moh*_*far 15
我找到了解决方案。对于每个 FeignClient 有一个configuration接受类数组的选项。在kotlin中将类分配给配置的语法如下:
@FeignClient(
name = "feign-client",
path = "/path",
url = "https://example.com",
configuration = [FeignCustomConfiguration::class]
)
interface FeignCustomClient {
...
}
Run Code Online (Sandbox Code Playgroud)
通过这种分配,每个 FeignClient 都有自己的配置,并且 RequestInterceptor 不处理其他客户端。
| 归档时间: |
|
| 查看次数: |
11258 次 |
| 最近记录: |