Request Interceptors When you need to change all requests, regardless of their target, you’ll want to configure a RequestInterceptor. For example, if you are acting as an intermediary, you might want to propagate the X-Forwarded-For header.
static class ForwardedForInterceptor implements RequestInterceptor { @Override public void apply(RequestTemplate template) { template.header(“X-Forwarded-For”, “origin.host.com”); } }
public class Example { public static void main(String[] args) { Bank bank = Feign.builder() .decoder(accountDecoder) .requestInterceptor(new ForwardedForInterceptor()) .target(Bank.class, “https://api.examplebank.com”); } } Another common example of an interceptor would be authentication, such as using the built-in BasicAuthRequestInterceptor.
public class Example { public static void main(String[] args) { Bank bank = Feign.builder() .decoder(accountDecoder) .requestInterceptor(new BasicAuthRequestInterceptor(username, password)) .target(Bank.class, “https://api.examplebank.com”); } }
