无法通过Ldapmain对您进行身份验证,因为"未定义的方法`external email ='

时间:2017-10-25 04:16:57

标签: ruby-on-rails ldap gitlab

我的Gitlab环境:

  1. GitLab 9.5.2
  2. GitLab Shell 5.8.0
  3. GitLab Workhorse v3.0.0
  4. GitLab API v4
  5. Git 2.13.5
  6. Ruby 2.3.3p222
  7. Rails 4.2.8
  8. postgresql 9.6.3
  9. 我的Gitlab LDAP配置:

     gitlab_rails['ldap_enabled'] = true
    ##! **remember to close this block with 'EOS' below**
     gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
       main: # 'main' is the GitLab 'provider ID' of this LDAP server
         label: 'LDAP'
         host: '192.168.21.7'
         port: 389
         uid: 'mail'
         bind_dn: 'cn=MyUserName,ou=MIS,ou=SZ,dc=r-pac,dc=local'
         password: 'MyPassword'
         encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
         verify_certificates: false
         ca_file: ''
         ssl_version: ''
         active_directory: true
         allow_username_or_email_login: false
         block_auto_created_users: false
         base: 'ou=MIS,ou=SZ,dc=r-pac,dc=local'
         user_filter: ''
         attributes:
           username: ['uid', 'userid', 'sAMAccountName']
           email:    ['mail']
           name:       'cn'
           first_name: 'givenName'
           last_name:  'sn'
         ## EE only
         group_base: ''
         admin_group: ''
         sync_ssh_keys: false
     EOS
    

    我今天无法登录。它始终是可能的。登录时抛出异常:

      

    无法通过Ldapmain对您进行身份验证,因为&#34;未定义的方法   `external email =&#39; for#&lt; user id:2 @ allen.cai&gt;你的意思是?   外部=&#34;

    我执行命令检查 gitlab-rake gitlab:ldap:check

    Checking LDAP ...
    
    Server: ldapmain
    LDAP authentication... Success
    LDAP users with access to your GitLab server (only showing the first 100 results)
    ......
    

    有人能帮帮我吗?谢谢:)

1 个答案:

答案 0 :(得分:1)

问题的原因是我将Gitlab版本从9.5.2升级为10.0.3
感谢VonC提供了解决类似问题的链接:
https://forum.gitlab.com/t/cannot-login-after-upgrade-to-9-0/7066
https://gitlab.com/gitlab-org/gitlab-ce/issues/29957
我执行了gitlab-rake db:migrategitlab-ctl restart命令,但没有工作LDAP身份验证登录仍有问题。

最后,我尝试升级到10.1.0,发现LDAP身份验证登录问题已解决。 :)

  

有这类问题的朋友,如果你还打算使用升级   解决LDAP身份验证登录问题的方法,请备份您的   Gitlab数据,一旦升级无法解决问题,请使用您的备份   要还原和回滚Gitlab的数据,请避免一些意外情况   失败,我的Gitlab是一个悲剧性的案例