【发布时间】:2017-08-02 18:05:52
【问题描述】:
我创建了一个具有以下组件的 gerrit 服务器:
- gerrit 2.11.3(Eclipse eGerrit支持的最新版本)git
- git 2.13.3(当前版本)
到目前为止我已经成功了:
- 将 gerrit 配置为使用我们的 LDAP 进行 HTTP 身份验证
[格里特]
basePath = /dummysome/data/gerrit2
canonicalWebUrl = http://build.ct.dummyserver.co.za:8081/
[数据库]
类型 = 甲骨文
主机名 = 本地主机
端口 = 1521
实例 = gerritdb
用户名 = gerrit2
[索引]
类型 = Lucene
[认证]
类型 = LDAP
gitBasicAuthPolicy = LDAP
[ldap]
服务器 = ldap://dc1.ct.dummyserver.co.za
用户名 = cn=管理员,cn=用户,dc=ct,dc=dummyserver,dc=co,dc=za
accountBase = ou=Staff,ou=osTelephone,dc=ct,dc=dummyserver,dc=co,dc=za
groupBase = ou=Staff,ou=osTelephone,dc=ct,dc=dummyserver,dc=co,dc=za
[发送邮件]
smtpServer = 本地主机
[集装箱]
用户 = gerrit2
javaHome = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre
[sshd]
listenAddress = :29418
[httpd]
listenUrl = http://:8081/
[缓存]
目录 = 缓存
- 使用我的 LDAP 用户名和密码通过 HTTP 登录到 gerrit Web UI(登录后,gerrit 显示我是“管理员”组的成员)
- 通过 gerrit web 创建了一个 gerrit (git) 项目“dummy” 界面
- 通过 HTTP 从 gerrit 克隆了“虚拟”git 存储库 使用 eGit 将服务器连接到我的 Eclipse Neon 客户端
- 在我的客户端上向“dummy”添加了一个新的测试文件并成功提交
[核心]
符号链接 = 假
存储库格式版本 = 0
文件模式 = 假
logallrefupdates = true[远程“原点”]
网址 = http://dummyserver.com:8081/dummy
fetch = +refs/heads/:refs/remotes/origin/
fetch = refs/notes/:refs/notes/
pushurl = http://dummyserver.com:8081/dummy
push = HEAD:refs/for/master[分支“主”]
远程 = 原点
合并 = refs/heads/master[格里特]
createchangeid = true
当我将更改推送到 gerrit 存储库的上游时,系统会提示我输入我的用户名和密码(可以选择将其保存到 Eclipse 安全存储)
但是,当我输入与登录 gerrit UI 时相同的详细信息时,我会不断地看到相同的登录表单。
最终,当我取消时,我会看到以下错误消息:
无法连接到任何存储库:http://dummyserver.com:8081/dummy (http://dummyserver.com:8081/dummy: 未授权)
查看 gerrit 服务器日志时,我看到以下错误
192.168.1.165 - - [02/Aug/2017:19:53:52 +0200] "GET /dummy/info/refs?service=git-receive-pack HTTP/1.1" 401 12 - "JGit/4.6.1.201703071140-r"
我注意到错误出现在我的客户端上弹出登录窗口的那一刻,而不是在输入我的用户名和密码后按下时。这似乎表明某种服务器配置错误,而不是实际的身份验证。
我真的不知道下一步该去哪里,我非常感谢任何人对可能导致问题的任何见解。
非常感谢!
【问题讨论】:
-
什么是推送命令?
-
@MarceloÁviladeOliveira - 谢谢。我在 Eclipse 中使用 eGit,所以我只选择了“推送到上游”,但是我已经编辑了原始帖子以包含 eGIT .git\config 文件,该文件在我最初从 gerrit 服务器克隆虚拟存储库时自动创建。希望这些信息对您有所帮助?