问题:
微服务调用需要验证token,而且token放在header里
解决:
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
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"));
}
}
调用:@FeignClient(value = "demo-service", configuration = FeignConfig.class)
@Component
@FeignClient(value = "demo-service", configuration = FeignConfig.class)
@RequestMapping( method = {RequestMethod.GET, RequestMethod.POST})
public interface TestClient {
@GetMapping(value = "/demo/version")
String version();
}