3

更新

这是特定于用户的。当我卷曲网址时

http://localhost//api/v3/internal/allowed?key_id=22&action=git-upload-pack&ref=_any&project=analytics/dns-website

来自使用 id 22 的 GitLab 服务器,如果为“假”,则响应。如果我将 key_id 更改为另一个用户的,则响应为“true”


每当我使用 LDAP 凭据克隆现有的 git 存储库(或从远程推送/拉取)时,都会收到错误消息:

Access denied. fatal: The remote end hung up unexpectedly

其他域中的 LDAP 用户不受影响。

我在我的 GitLab 配置文件中删除并重新添加了一个公钥,我可以成功测试 ssh 连接:

#ssh -vT git@git.mysite.com

OpenSSH_5.9p1, OpenSSL 0.9.8y 5 Feb 2013
...
Welcome to GitLab, Keith Harris!
...
debug1: Exit status 0

gitlab-shell.log 报告以下错误:

W,[2013-10-15T16:55:43.226875 #23590] WARN -- : gitlab-shell: Access denied for git command <git-upload-pack 'analytics/dns-website.git'> by user with key key- 22.

4

1 回答 1

1

我要结束这个问题,现在我会问另一个问题,因为我知道这个问题与 GitLab 配置无关。

我发现 api 调用仅对我域中的用户失败,其他企业域中的用户不受影响。

lib/api/internal.rb line# 38 返回 false 因为 Gitlab::LDAP::User.blocked?(user.extern_uid) == true

更新

我使用 PR #5400 https://github.com/gitlabhq/gitlabhq/pull/5400让它工作了

需要更新 lib/gitlab/ldap/user.rb:

def blocked?(dn)
    ldap = OmniAuth::LDAP::Adaptor.new(ldap_conf)
    ldap.connection.search(base: dn, scope: Net::LDAP::SearchScope_BaseObject, size: 1).blank?
end
于 2013-10-17T15:31:04.467 回答