Назад | Перейти на главную страницу

rest api с gerrit, настроенным с HTTP-аутентификацией

У меня есть работающая установка 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 аутентификация работает без проблем.