2015-02-24 137 views
0

我對Gerrit定製和運行Gerrit服務器的測試有點新手。Gerrit 2.8.5從http請求中檢索xGerritAuth

在2.4版本格里特的,一個HTTP登錄請求(在我的情況下,從Python文件)將返回一個結果是有xsrfToken領域和價值爲gerrit_hostpagedata成員(例如,在請求結果你會看到gerrit_hostpagedata.xsrfToken=<some value>)。

在2.8中,這已更改,因此xGerritAuth現在是標記值的字段。但是,從服務器到我的http登錄請求的響應(通過python)沒有返回xGerritAuth字段/值對。

在Gerrit的Web UI中,如果我在登錄時查看源,則可以看到xGerritAuth字段/值對。

所以我想知道有沒有辦法獲得對http登錄請求的響應中返回的xGerritAuth值?

請注意,gerrit/common/data/HosptPageData.java已更改爲反映新標記名稱(xGerritAuth)。

THX -Mike

回答

1

您需要解析xGerritAuth出HTML響應(當你把你的憑據/login/你獲得)的。我在我的gerrit-rest-java-client中就是這麼做的。 Check out this code。 (tryGerritHttpAuthextractGerritAuth)。

另一種方法:使用Gerrit的(新)REST API。您可以使用您在Gerrit帳戶設置中設置的HTTP憑證。 See REST API’s documentation

+0

感謝您的建議......一旦我完成了代碼,我會給它一個鏡頭。 gerrit.config中的AUTH的設置是什麼?我嘗試通過curl命令使用其餘的api,並且我沒有太多的運氣讓它與--user開關一起工作。我可以獲得返回的項目列表,但只有匿名的項目不是我有權查看的項目。還在curl命令中使用--anyauth開關。 – 2015-03-03 17:54:57

+0

我的代碼基本上支持(幾乎)所有AUTH方法(OAuth除外)。只有在使用「正常」Gerrit登錄(而不是Gerrit設置的HTTP密碼)時才需要xGerritAuth。使用REST API,我不使用任何類似--anyuth或--user的命令。我只是發送用戶的用戶名和密碼,我想與其進行REST操作。 – uwolfer 2015-03-03 19:24:57

+0

謝謝。我試圖用cURL來測試其餘的api,但我沒有太多的運氣。你能用cURL測試嗎?我只是試圖獲得一個項目列表(在我的測試中),但它似乎忽略了我發送的--user值,只是給了我匿名訪問的項目。 – 2015-03-05 14:54:56