Остальные API с Gerrit настроен с аутентификацией http

У меня есть работающая установка gerrit, единственное, что gerrit настроен с HTTP-аутентификацией, а nginx управляет аутентификацией.

Теперь я хочу использовать gerrit restapi (просто установить проверенную метку с помощью curl как определенного пользователя). для этого мне нужно использовать http пароль, сгенерированный gerrit в панели настроек. так что вы можете увидеть проблему. есть два разных пароля. сначала я пытаюсь установить один и тот же пароль для обоих (пароль nginx находится под моим контролем, gerrit нет), затем я изменяю попытку создать новое местоположение для /a/ (префикс gerrit для аутентификации) и удаляю пароль nginx на этом маршруте, пока не повезло. Конечная конфигурация nginx:

location /a/ {
        proxy_pass        http://127.0.0.1:8118;
        proxy_set_header  X-Forwarded-For $remote_addr;
        proxy_set_header  Host $host;
        auth_basic "Gerrit";
        proxy_set_header Authorization $http_authorization;
        proxy_pass_header  Authorization;
}

location / {
        proxy_pass        http://127.0.0.1:8118;
        proxy_set_header  X-Forwarded-For $remote_addr;
        proxy_set_header  Host $host;
        auth_basic "Gerrit";
        auth_basic_user_file /etc/nginx/conf.d/gerrit.htpasswd;
        proxy_set_header Authorization $http_authorization;
        proxy_pass_header  Authorization;
}

Мой конфиг геррита:

[gerrit]
        basePath = git
        canonicalWebUrl = http://gerrit.example.com/
[database]
        type = postgresql
        hostname = 127.0.0.1
        database = reviewdb
        username = gerrit2
[index]
        type = LUCENE
[auth]
        type = HTTP
[sendemail]
        smtpServer = mail.vada.ir
        from = ${user} Code Review <git@vada.ir>
        smtpUser = git@vada.ir
        smtpPass = T7SMkUYRqMP

[container]
        user = gerrit2
        javaHome = /usr/lib/jvm/java-7-openjdk-amd64/jre
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = proxy-http://127.0.0.1:8118/
[cache]
        directory = cache
[plugins]
        allowRemoteAdmin = true

изменение аутентификации gerrit - это только вариант, если мы можем защитить его от регистрации.

Спасибо.

1 ответ

Решение

Я обнаружил, что нормальный (базовая аутентификация) не работает с API в моей настройке. но с помощью аутентификации digets работает без проблем.

Другие вопросы по тегам