feign远程调用如何在请求头上加上token
时间: 2023-08-16 16:04:21 浏览: 70
在Feign远程调用中,可以通过自定义请求拦截器来实现在请求头上加入Token。
首先,需要实现一个Feign的请求拦截器,代码如下:
```java
public class TokenInterceptor implements RequestInterceptor {
private final String token;
public TokenInterceptor(String token) {
this.token = token;
}
@Override
public void apply(RequestTemplate template) {
template.header("Authorization", "Bearer " + token);
}
}
```
在这个拦截器中,我们通过`RequestTemplate`对象来设置请求头,将Token添加到`Authorization`字段中。
接着,在使用Feign进行远程调用时,需要将自定义请求拦截器加入到Feign的请求拦截器列表中,代码如下:
```java
@FeignClient(name = "service-name", configuration = FeignConfig.class)
public interface RemoteService {
@RequestMapping("/test")
String test();
}
@Configuration
public class FeignConfig {
private final String token = "xxx";
@Bean
public RequestInterceptor requestInterceptor() {
return new TokenInterceptor(token);
}
}
```
在这个例子中,我们在`FeignConfig`中创建了一个`TokenInterceptor`实例,并将其加入到Feign的请求拦截器列表中。这样,在使用Feign进行远程调用时,就会自动加入Token到请求头中了。
需要注意的是,如果你的Token是动态生成的,那么就需要在每次请求前重新生成并设置到拦截器中。