Search code examples
javajax-rsaopinterceptor

JAX RS Client API interceptor


Is there a way to add a header into the request via interceptors,but not via explicitly setting a header, when JAX RS Client API is used:

Client client = ClientBuilder.newClient();
Response response = client.target("someUrl").path("somePath").request().get();

In AOP way


Solution

  • Create a ClientRequestFilter:

    @Provider
    public class MyClientRequestFilter implements ClientRequestFilter {
    
        @Override
        public void filter(ClientRequestContext requestContext) throws IOException {
            requestContext.getHeaders().add("Authorization", "value");
        }
    }
    

    And register it in your Client:

    Client client = ClientBuilder.newClient().register(MyClientRequestFilter.class);