一、问题描述
A项目在使用openfeign调用B项目的接口时,如果B项目进行了登录拦截,要求在请求头中保存token以校验身份。
二、解决方案
1、大部分情况下,同一个系统的多个微服务之间的token应该是通用的,这时候就可以在发出请求时将当前request中的token取出来放到openfeign请求头中
2、直接上代码,启动类中扫描此类即可
@Configuration
@Slf4j
public class FeignConfiguration implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
log.info("请求token为=============={}", request.getHeader("token"));
requestTemplate.header("token", request.getHeader("token"));
}
}