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 は別のポートをリッスンする必要があります (少なくとも両方のサービスが同じサーバーで実行されている場合)。実際、どうやって両方を同時に開始できたのか不思議です ;-)

したがって、ポート 8081 ではなく、ポート 80 に対して apache vhost を設定します。その後、ユーザーはhttp://freshattitude.eu/に接続します。

最後に、再び でgerrit.config、 を修正してcanonicalWebUrlを削除する:8081必要があります。これは、プロキシを使用しているためです。これは、外界への URL が何であるかを Gerrit に伝える方法です。

リバース プロキシの設定に関する Gerrit のドキュメントを1 回確認する必要があると思います。

その後、Gerrit はローカルホストのポート 8081 のみをリッスンし、apache はポート 80 をリッスンすることになります (確かに、SSL を使用してから、 のproxy-httpsバリアントを使用することもできますgerrit.config)。

于 2013-10-05T17:30:44.050 に答える
0

これは、実行して役立つ構成ですhttps://groups.google.com/forum/?hl=en#!topic/repo-discuss/qwQxy_izXzo

よろしくお願いいたします。
Alok Thaker

于 2013-10-05T15:41:54.943 に答える
0

私が知る限り、Gerrit では、HTTP 認証を使用する場合、要求ヘッダーで認証の詳細を提供する必要があります。したがって、この匿名アクセスを使用する場合は不可能です。このため、 を に変更するLocation "/login/"Location "/"、Gerrit に移動する前に常に認証が行われます。それが機能し、私はそれと一緒に暮らすことができます。

これは実際にはどこかに忍び込んだ回帰バグかもしれませんが、私はそれをどのように機能させていますか。

于 2013-10-07T00:46:19.693 に答える