Gerrit
配置了 http 身份驗證的 gerrit 的 rest api
我有一個工作的 gerrit 安裝,唯一的事情是,gerrit 配置了 HTTP 身份驗證後端,並且 nginx 處理身份驗證。
現在,我想使用 gerrit restapi(只是通過 curl 將 Verified 標籤設置為特定使用者)。為此,我需要在設置面板中使用 gerrit 生成的 http 密碼。所以你可以看到問題。有兩個不同的密碼。首先我嘗試為兩者設置相同的密碼,(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。但是使用數字身份驗證沒有問題。