2016-05-25 1 views
0

JAX-RS(RestEasy)では、リクエストを送信する前にヘッダーを変更するクライアントフィルターを実装したいので、毎回手動で行うのではありませんシングルコール。リクエストがサーバーに送信される前にヘッダーを変更するJAX-RSクライアントフィルター

現在、受信側でこれを行い、リソースに到着する前にリクエストを傍受します。

@Provider 
@Priority(Priorities.AUTHENTICATION) 
public class AuthenticationFilter implements ContainerRequestFilter { 

    @Override 
    public void filter(ContainerRequestContext requestContext) throws IOException { 

     // read header 
    } 

今、私はこの(私が間違っているなら、私を修正して)知っている:受信側では

を、ContainerRequestFilterは、要求がリソースに到着する前に使用して、要求を取得することができます。

しかし、クライアント側でこれを実装して、要求がサーバーに送信される前にヘッダーを変更する必要があります。同じサーバーフィルタを使用することができますか、クライアントに類似したフィルタがありますか?

+0

ClientRequestFilterを登録する必要があり@peeskilletリソースメソッドが受信機側で呼び出される前にええフィルタが呼び出されます。しかし、リクエストが送信される前に送信ポイントに同様のフィルタを実装したいと思います!ルカの答えを見てください。 – fareed

+0

@peeskillet申し訳ありませんが、質問の最後の部分が私がクライアント(送信側)を意味していたことが明らかではなかったと思います。とにかくありがとう:) – fareed

答えて

4

あなたのClient

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() 
    } 
} 
+0

パーフェクト!ありがとう – fareed

関連する問題