5

CXF を使用して、JAX-RS REST サービスのクライアント コードを作成しています。残念ながら、この REST サービスは Cookie に依存して各リクエストを認証し、その他の主要なセッション状態を維持します。ユーザーのアカウント情報へのアクセスには、2 つの要求が必要です。1 つはログインするため、もう 1 つはアカウント情報を取得するためです。最初のリクエストで取得したセッション Cookie は、2 番目のリクエストで送信する必要があります。

これが私のコードです。

// 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 番目の要求は、前のログイン操作によって返された必要なセッション Cookie が含まれていないため、認証に失敗します。

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

4

1 に答える 1

7

私は最終的に解決策を見つけました。プロキシを使用する前に、次のことを行う必要がありました。

WebClient.getConfig(proxy).getRequestContext().put(
        org.apache.cxf.message.Message.MAINTAIN_SESSION, Boolean.TRUE);
于 2013-04-19T15:36:37.877 に答える