我们在项目中使用feign进行调用时,往往需要进行身份验证,而feignclient需要按照http调用方的格式来书写,这时候呢,我们可以使用这种方式来进行加入身份验证。
public class FeignConfig implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
//添加token
requestTemplate.header("Authorization", request.getHeader("Authorization"));
}
}
当然,这里可以传入你所有想加入的参数,包括token啊,cookie,或者其他自定义的参数。 然后在feignclient的时候加入该配置就可以了
@FeignClient(contextId = "xxx",value = "xx",configuration = FeignClient.class);
但是这样的话,每一个定义的feignclient都需要去加这个配置,感觉比较麻烦, 然后查看源码 FeignClientsRegistrar
public void registerBeanDefinitions(An