简而言之:
如何更改 Redmine 或其设置以修改发送到 LDAP 的数据?
我想从 LDAP 声明的以下行中删除 MyDomain.de:
[05/Jan/2016 10:08:12] LDAP: User cn=000000e1,fn=Contacts,fn=public,fn=ContactRoot@MyDomain.de doesn't exist. Attempt from IP address 192.168.1.68.
Redmine 中 Base DN 的设置为:
fn=Contacts,fn=public,fn=ContactRoot
长:
我在 CentOS 7 机器上设置了一个新的 Redmine 3.2.0。然后我将旧Redmine的上传文件和sql数据导入新Redmine。
除了插件,一切似乎都被移植了。
我有一个 Kerio Connect 客户端正在运行,它处理用户的登录数据。管理部分中的设置与旧 Redmine 中的设置相同,因为它们已被移植。现在出现的问题是我无法使用这些 LDAP 用户登录。
我没有设置旧的Redmine,但是设置它的人修改了一些东西以使其工作......不幸的是他没有写下来......
我查看了旧 Redmine 和新 Redmine 的日志文件,两者在为向 LDAP 发送数据时记录的内容是相同的。
在 LDAP 中,说明了以下错误:
[05/Jan/2016 10:08:12] LDAP: User cn=000000e1,fn=Contacts,fn=public,fn=ContactRoot@MyDomain.de doesn't exist. Attempt from IP address 192.168.1.68.
问题似乎是 MyDomain.de。 LDAP 没有预料到这一点,因此拒绝登录。 Redmine 中 Base DN 的设置为:
fn=Contacts,fn=public,fn=ContactRoot
我没有使用 Redmine 和 LDAP 的经验,所以有没有人告诉我如何改变它?
编辑:
完整的 Redmine 配置:
Host: mailserver.MyDomain.de
Port: 389
Account: login@MyDomain.de
Password: ***
Base DN: fn=Contacts,fn=public,fn=ContactRoot
On-the-fly user create = on
属性:
Login attribute: uid
Firstname attribute: givenName
Lastname attribute: sn
Email attribute: mail
最佳答案
我找到了解决方案。打开以下文件:
/path/to/redmine/app/models/auth_source_ldap.rb
然后更改以下行:
if attrs && attrs[:dn] && authenticate_dn(attrs[:dn], password)
至
if attrs && attrs[:dn] && authenticate_dn(login, password)
这将删除 @myDomain.de 。我知道这不是最好的解决方案,但它是一个解决方案。
关于centos - Redmine:更改 Kerio LDAP 登录的输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34609685/