2013-04-19 10 views
5

JAX-RS RESTサービスのクライアントコードをビルドするためにCXFを使用しています。このRESTサービスは残念なことに、Cookieを使用して各リクエストを認証し、他のキー・セッション状態を維持します。ユーザーのアカウント情報にアクセスするには、ログインするユーザーとアカウント情報を取得するユーザーの2つの要求が必要です。最初の要求で取得されたセッションCookieは、2番目の要求と共に送信されなければなりません。CXF JAX-RSクライアントプロキシでクッキーを維持しない

ここに私のコードです。それは前にログイン操作によって返された必要なセッションクッキーが含まれていないので、

// Login (POST /sessions) 
Response response = proxy.login(userCredentials); 
assertEquals(200, response.getStatus()); 

// Get user's account info (GET /user) 
response = proxy.getUser(); 
User user = response.readEntity(User.class); 

2番目の要求には、認証が失敗しました。

WebClientを構成して、リクエスト間でCookieを維持する方法があると思います。私は高低を検索しましたが、どうやって見つけることができません。誰かが私に例を教えてくれることを願っています。前もって感謝します!

答えて

7

最終的に解決策が見つかりました。私はプロキシを使う前に次のことをしなければならなかった。

WebClient.getConfig(proxy).getRequestContext().put(
     org.apache.cxf.message.Message.MAINTAIN_SESSION, Boolean.TRUE); 
関連する問題