69004

JAX-RS Client Filter to Modify Header Before Request is Dispatched to server

Question:

In JAX-RS (RestEasy), I want to implement a client filter that modifies the header before sending the request so I don't do this manually for every single call.

Currently I'm doing this in the receiving end to intercept requests before arriving to the resource.

@Provider @Priority(Priorities.AUTHENTICATION) public class AuthenticationFilter implements ContainerRequestFilter { @Override public void filter(ContainerRequestContext requestContext) throws IOException { // read header }

Now I know this (Correct me if I'm wrong):

In the receiving end, ContainerRequestFilter can be used before the request arrives to the resource and get the request.

But I want to implement this in the client side, to modify the header before the request is ever sent to the server. Can the same server filter be used or there is something similar to for the client?

Answer1:

You must register a <a href="https://docs.oracle.com/javaee/7/api/javax/ws/rs/client/ClientRequestFilter.html" rel="nofollow">ClientRequestFilter</a> into your <a href="http://docs.oracle.com/javaee/7/api/javax/ws/rs/client/Client.html" rel="nofollow">Client</a>

Client client = ClientBuilder.newClient().register(MyFilter.class); @Provider public class MyFilter implements ClientRequestFilter { @Override public void filter(ClientRequestContext ctx) throws IOException { // modify header before send: ctx.getHeaders() } }

Recommend

  • Passing Custom Headers to Selenium from Capybara
  • ASP.NET MVC 2 - ViewData empty after POST
  • Algorithm dynamic program
  • How can an app determine if its being launched from a terminated state due to Voip Push?
  • Observable to batch like Lmax Disruptor
  • watch request to new topic pauses push notifications to existing topic
  • Boot/Broadcast Receiver reboot issues
  • iOS/Swift: in which function between viewDidLoad and viewWillAppear am I supposed to query a databas
  • AndroidAnnotations Rest view response data
  • Why can't pass only 1 coulmn to glmnet when it is possible in glm function in R?
  • Why java statement evaluation is happening like these ?
  • Pandas column creation
  • Problem with sockets in C#
  • How does Skobbler prioritize which POIs to show?
  • How Can I Prevent Activation For Some ListView Items When The Selection Mode Is MultiChoiceModal?
  • While loop won't end when I tell it in JavaScript
  • Jackson mapper write id instead of entire object
  • Generating random numbers directly inside a .htaccess file
  • Can't connect Entity Framework to local SQL Server Express
  • Log4j cannot find properties file in a simple application
  • Spring Security bcrypt encoding login is not working
  • How many Vertica Databases can run on a Host in the same time?
  • Dynamically set LESS variables from user settings
  • init_seg and warning C4073 from library code?
  • Relative paths. baseUrl and paths not working on ionic2 - angular2
  • EntLib Way to Bind “Null” Value to Parameter
  • File extension of zlib zipped html page?
  • In Java, how can I construct a File from a resource?
  • How to programatically 'login' a user based on 'remember me' cookie when using j
  • Force show.bind execution
  • JBoss External Properties Files in Classpath
  • PHP CURL timing out but CLI CURL works
  • With Hadoop, can I create a tasktracker on a machine that isn't running a datanode?
  • Launch Runnable Jar from Web Start
  • In LanguageTool, how do you create a dictionary and use it for spell checking?
  • How to make Safari send if-modified-since header?
  • Web-crawler for facebook in python
  • Cannot Parse HTML Data Using Android / JSOUP
  • Java static initializers and reflection
  • unknown Exception android
  • Observable and ngFor in Angular 2
  • Unable to use reactive element in my shiny app