2013-10-05 3 views
0

У меня установлен gerrit на моем сервере centos, но у меня проблема с аутентификацией. Я хотел бы предоставить права на аутентификацию для пользователей centos в данной группе. В принципе, каждый пользователь группы gerrit должен иметь возможность входа в систему со своим паролем.Установка Gerrit на CentOS не работает

Но, когда я получить доступ к ссылке Геррит, есть редирект Геррит: 8081/Войти, когда я получаю следующее сообщение:

Сервер HTTP не предусматривает имя пользователя в авторизации заголовок при он отправил запрос на проверку кода Gerrit.

Если сервер HTTP является Apache HTTPd, проверьте настройки прокси-сервера включает директиву авторизации с соответствующим адресом, обеспечивая она заканчивается «/»:

У вас есть какие-то намеки, почему это Безразлично» т работы?

VirtualHost часть файла /etc/httpd/conf/httpd.conf выглядит примерно так:

<VirtualHost gerrit:8081> 
    ServerName gerrit 

    ProxyRequests Off 
    ProxyVia Off 
    ProxyPreserveHost On 

    <Proxy *> 
      Order deny,allow 
      Allow from all 
    </Proxy> 

    <Location "/login/"> 
     AuthType Basic 
     AuthName "Gerrit Code Review" 
    AuthBasicProvider file 
     AuthUserFile /etc/passwd 
     Require valid-user 
    </Location> 


    AllowEncodedSlashes On 
     ProxyPass /r http://localhost:8081/r nocanon 
</VirtualHost> 

И файл gerrit.config:

[gerrit] 
     basePath = /repos 
     canonicalWebUrl = http://freshattitude.eu:8081/ 
[database] 
     type = mysql 
     hostname = localhost 
     database = gerrit 
     username = gerrit 
[auth] 
     type = HTTP 
     emailFormat = {0}@example.com 
[sendemail] 
     smtpServer = localhost 
     smtpUser = root 
[container] 
     user = gerrit 
     javaHome = /usr/java/jdk1.7.0_25/jre 
[sshd] 
     listenAddress = *:29418 
[httpd] 
     listenUrl = http://*:8081/ 
[cache] 
     directory = cache 

ответ

0

Это конфигурация которая работает и поможет вам https://groups.google.com/forum/?hl=en#!topic/repo-discuss/qwQxy_izXzo

Спасибо & С уважением,
Alok Thaker

+0

Обратите внимание, что эта конфигурация не действует для Gerrit 2.6+ больше, так как требуются «AllowEncodedSlashes On» и «ProxyPass ... nocanon»! В противном случае при открытии экрана изменения вы получите 404 ошибки. – StephenKing

1

Вы допустили некоторые ошибки. С одной стороны, вы должны установить в gerrit.config

httpd.listenUrl = proxy-http://127.0.0.1:8081/ 

так, что Геррит знает о прокси перед ним.

Кроме того, ваш Apache-хост должен прослушивать другой порт (по крайней мере, когда обе службы работают на одном сервере). На самом деле, мне интересно, как вы могли начать оба одновременно ;-)

Итак, установите apache vhost для порта 80, а не для порта 8081. Затем пользователи подключаются к http://freshattitude.eu/.

Наконец, опять-таки в gerrit.config, вы должны исправить canonicalWebUrl и удалить :8081, так как из-за вы используете прокси-сервер, это то, как вы сказать, что Геррит его URL к внешнему миру.

Я думаю, вы должны пройти через Gerrit docs on reverse proxy config один раз.

После этого вы будете в конечном итоге с Геррит слушать только на локальном хосте порт 8081 и апача прослушивает порт 80 (конечно, вы можете использовать SSL, а затем использовать proxy-https вариант в gerrit.config).

0

Насколько мне известно, Gerrit требует, чтобы данные аутентификации были представлены в заголовке запроса при использовании HTTP-аутентификации. Таким образом, при использовании этого анонимного доступа невозможно. Из-за этого я изменил Location "/login/" на Location "/", тогда аутентификация всегда выполняется перед переходом на Gerrit.Что он работает, и я могу жить с ним.

На самом деле это может быть ошибка с регрессией, которая вкралась где-то, но то, как я ее работаю.

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