2015-02-24 65 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