在我的组织中,有些用户没有电子邮件地址。在ActiveDirectory的电子邮件字段中,他们有一个伪造的(格式错误的)电子邮件地址,例如“user.name@xx”。
当这些用户尝试登录Gitlab时,会出现以下错误:
'无法通过LDAP授权您,因为“验证失败:电子邮件无效,电子邮件无效”。'
是否有任何配置忽略使用LDAP进行电子邮件地址检查?
答案 0 :(得分:0)
issue 6230一直在跟踪此事:
用户模型的邮件验证通过验证执行:
app/models/user.rb
。我认为您可以在此处配置自己的正则表达式:
config/initializers/devise.rb
。
然而,官方声明是:
禁用验证不会在GitLab端完成。这可能导致数据库不一致,并可能导致过多的问题。
我建议你:
allow_username_or_email_login
设置:https://github.com/gitlabhq/gitlabhq/blob/master/config/gitlab.yml.example#L130 这是一个支持问题,所以我会指出contributing guide并关闭它。
不直接使用GitLab本身,因为该错误消息是 omniauth
回调的结果:请参阅config/locales/devise.en.yml
:
omniauth_callbacks:
success: 'Successfully authorized from %{kind} account.'
failure: 'Could not authorize you from %{kind} because "%{reason}".'
然而,Rodrigo Carvalho报告in the comments:
我实际上发现这是一个Gitlab行为。
我更改了“
/lib/gitlab/oauth/user.rb
”(Gitlab代码),在无效的电子邮件地址末尾附加了“.com
”,并且有效。