У меня есть работающая установка gerrit, единственное, gerrit настроен с сервером аутентификации HTTP, а nginx обрабатывает аутентификацию.
Теперь я хочу использовать gerrit restapi (просто чтобы установить метку Verified через 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:
[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 возможно только в том случае, если мы сможем защитить его от регистрации.
Спасибо.
Я обнаружил, что нормальная (базовая аутентификация) не работает с api в моей настройке. но используя Digets аутентификация работает без проблем.