2015-02-24 2 views
0

Я немного новичок в настройке Gerrit и выполнении тестов с сервером Gerrit.Gerrit 2.8.5 получение xGerritAuth из http-запроса

В 2.4 версии Геррит, запрос HTTP Логин (в моем случае из питона файла) будет возвращать результат, который имел xsrfToken поле и значение в качестве членов gerrit_hostpagedata (например, в результате запроса вы увидите gerrit_hostpagedata.xsrfToken=<some value>).

В 2.8 это изменилось так, что xGerritAuth теперь является полем для значения токена. Однако ответ от сервера на мой запрос на вход в http (через python) не возвращает пару полей/значений xGerritAuth.

В интерфейсе веб-интерфейса для Gerrit, если я просматриваю источник при входе в систему, я могу увидеть пару/пару xGerritAuth.

Так что мне интересно, есть ли способ получить значение xGerritAuth, возвращенное в ответ на запрос на вход в http?

УКАЗАНИЕ, что gerrit/common/data/HosptPageData.java изменился с учетом нового имени токена (xGerritAuth).

ТНХ -Mike

ответ

1

Вам нужно разобрать xGerritAuth из HTML-ответа (который вы получаете, когда вы отправляете свои учетные данные для /login/). Я делаю именно это в своем gerrit-rest-java-client. Check out this code. (tryGerritHttpAuth и extractGerritAuth).

Другой способ: использовать (новый) REST API Gerrit. Там вы можете использовать учетные данные HTTP, установленные вами в настройках учетной записи Gerrit. See REST API’s documentation.

+0

Спасибо за совет ... Я сделаю снимок, как только я переберу ваш код. Какая у вас настройка для AUTH в gerrit.config? Я попытался использовать остальные api через команды curl, и мне не очень повезло, что он работает с переключателем --user. Я могу получить список возвращенных проектов, но только анонимные ... не все те, которые у меня есть разрешения для просмотра. Также используйте переключатель --anyauth в команде curl. –

+0

Мой код в основном поддерживает (почти) все методы AUTH (кроме OAuth). Материал xGerritAuth требуется только при использовании «обычного» входа Gerrit (но не пароля HTTP из настроек Gerrit). Используя API REST, я не использую никаких команд, таких как --anyauth или --user. Я просто отправляю имя пользователя и пароль пользователя, с которым я хочу выполнять операции REST. – uwolfer

+0

Спасибо. Я пытаюсь использовать cURL для тестирования остальных api, но мне не очень повезло. Могли ли вы проверить с помощью cURL? Я просто пытаюсь получить список проектов (в моем тесте), но, похоже, игнорирует значения -user, которые я отправляю, и просто дает мне проекты с анонимным доступом. –

Смежные вопросы