0

我已经在我的 centos 服务器上安装了 gerrit,但是我的身份验证有问题。我想为给定组中的 centos 用户授予身份验证权限。基本上,gerrit 组中的每个用户都应该可以使用其密码登录。

但是,当我访问 gerrit 链接时,当我收到以下消息时会重定向到 gerrit:8081/login:

HTTP 服务器在将请求转发给 Gerrit Code Review 时未在 Authorization 标头中提供用户名。

如果 HTTP 服务器是 Apache HTTPd,请检查代理配置是否包含具有正确位置的授权指令,确保它以“/”结尾:

你有什么提示为什么这不起作用?

/etc/httpd/conf/httpd.conf 文件的 VirtualHost 部分如下所示:

<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
4

3 回答 3

1

你犯了一些错误。一方面,你必须设置gerrit.config

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

以便 Gerrit 知道它前面的代理。

此外,您的 Apache vhost 必须侦听不同的端口(至少当两个服务在同一服务器上运行时)。事实上,我想知道你是如何同时开始的 ;-)

因此,为端口 80 设置一个 apache vhost,而不是为端口 8081。然后用户将连接到http://freshattitude.eu/

最后,再次在 中gerrit.config,您必须修复canonicalWebUrl并删除:8081,因为您使用的是代理,这就是您告诉 Gerrit 其与外界的 URL 是什么的方式。

我认为您应该在反向代理配置上浏览 Gerrit 文档一次。

之后,您将看到 Gerrit 仅在 localhost 端口 8081 上侦听,而 apache 则在端口 80 上侦听(当然,您可能想要使用 SSL,然后使用 中的proxy-https变体gerrit.config)。

于 2013-10-05T17:30:44.050 回答
0

据我所知,Gerrit 要求在使用 HTTP 身份验证时在请求标头中提供身份验证详细信息。因此,当使用这种匿名访问时是不可能的。因此,我将其更改Location "/login/"Location "/",然后在转到 Gerrit 之前始终进行身份验证。它有效,我可以忍受它。

这实际上可能是一些回归错误,它悄悄潜入某处,但我如何让它工作。

于 2013-10-07T00:46:19.693 回答
0

这是运行并帮助您的配置https://groups.google.com/forum/?hl=en#!topic/repo-discuss/qwQxy_izXzo

谢谢和问候,
阿洛克·塔克

于 2013-10-05T15:41:54.943 回答