わかりました、ここで技術的な質問があります。VersionOne の「ストーリー」(XStudio の「要件」) と「欠陥」(XStudio の「バグ」) を選択できるように、XStudio で統合コンポーネントを開発しました。このようにして、XStudio からテストを実行し、結果やメトリックなどを管理できるだけでなく、VersionOne のアイテムを使用して XStudio で完全なトレーサビリティ マトリックス (製品 -> 要件 -> テスト -> テスト キャンペーン -> バグ) を管理することもできます。リンクは当方で処理します。
これを行うために、VersionOne の REST API を使用してコネクタを実装しました。すべてがうまく機能します!非常に速いなど
VersionOne の無料サーバーを使用してテストしましたが、問題はありませんでした。私たちの Java コードは、「基本認証」プロトコルを使用して認証するように Cookie を管理します。VersionOne から Cookie を取得し、それをローカルの CookieStore に保存して、次のリクエストでその Cookie を提供するので、何度も認証する必要はありません。これはすべて、私たちの側からはうまくいきました。
The content looks like this:
{X-Instart-Request-ID=[7405870175418545839:SEN01-NPPRY09:1396448658:44],
null=[HTTP/1.1 200 OK],
Date=[Wed, 02 Apr 2014 14:24:17 GMT],
Content-Length=[16063],
Expires=[-1],
VersionOne=[Ultimate/14.0.7.6706; Scrum],
Set-Cookie=[.V1.Ticket.ncnuaaa=HFZlcnNpb25PbmUuV2ViLkF1dGhlbnRpY2F0b3LqgwAAB1hTdHVkaW+CjqLWdBzRCP8/N/R1KMorEByFu31RuGY+eqVCi1FHvTE=; path=/; HttpOnly],
Connection=[keep-alive],
Content-Type=[text/xml; charset=utf-8],
Server=[Microsoft-IIS/8.0],
Pragma=[no-cache],
Cache-Control=[no-cache]}
しかし... クライアントの環境でコードを実行すると、何らかの理由で元の Cookie を取得できません!?
{cache-control=[no-cache],
content-type=[text/xml; charset=utf-8],
null=[HTTP/1.1 200 OK], expires=[-1],
content-length=[16063],
server=[Microsoft-IIS/8.0],
date=[Wed, 02 Apr 2014 12:34:08 GMT],
pragma=[no-cache]}
コードが接続からヘッダー フィールドを取得し、「Set-Cookie」フィールドを取得しようとすると、それが見つからず、ポップアップが自動的に表示されます。
Map<String, List<String>> headerFields = connection.getHeaderFields();
List<String> cookiesHeader = headerFields.get("Set-Cookie");
ポップアップは認証を求めています (ちなみに、「www6.v1host.com/192.33.31.50」では「www6.v1host.com/abcded」が予想されていましたが、ここに手がかりがあるのではないでしょうか?)。
ここでサーバーで認証すると、すべてが正常に続行され、すべてが正常に機能します。ただし、以前に接続で行ったように、再度認証する必要はありません。
String plainAuth = username + ":" + password;
encodedAuth = ("Basic " + new String(Base64.encode(plainAuth.getBytes()))).replaceAll("\n", "");
connection.setRequestMethod("GET");
connection.setRequestProperty("Authorization", encodedAuth);
connection.setRequestProperty("Connection", "keep-alive");
したがって、これが認証が機能していないためか (Cookie が返されず、ポップアップがユーザーに明示的に認証するように求める理由を説明します)、または Cookie 管理に関して特定の何かがあるためかどうかはわかりません...
ここで何が起こっているのか分かりますか?
このコードは、Basic Auth を使用する他の多くの REST API でうまく機能しています。そしてクッキー。前もって感謝します、