在單體服務中調用一個接口時需要在Head里加token直接放在head里就行了,Feign之間調用服務需要加token怎么辦呢,解決辦法實現RequestInterceptor接口。
1、在調用服務中新建FeignConfig類並實現RequestInterceptor接口,重寫apply方法。
public class FeignConfig implements RequestInterceptor { @Override public void apply(RequestTemplate requestTemplate) { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); //添加token requestTemplate.header("Token", request.getHeader("Token")); } }
2、調用方法
@FeignClient(name = "被調用服務名") public interface UaaClient { @RequestMapping(value = "被調用服務中方法名") String test(); }
這樣就可以實現Feign調用服務之間Token共享了。
