带有ldap插件的Sonar不使用没有域前缀的LDAP

时间:2016-11-11 21:28:54

标签: ldap sonarqube

我正在使用带有LDAP插件2.1.0的声纳5.6 LTS。

基本的LDAP配置工作正常。 Sonar可以连接到LDAP(在我的情况下是活动目录)。 sonar.log:

Test LDAP connection on ldaps://ldap.mycompany:636: OK

我的用户映射是

ldap.user.baseDn=OU=Users,OU=Accounts,DC=mycompany
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))

当我尝试使用 mycompany \ tobi 声纳日志登录时:

DEBUG web[o.s.p.l.LdapUsersProvider] Requesting details for user mycompany\tobi
...
DEBUG web[o.s.p.l.LdapUsersProvider] User mycompany\tobi not found in <default>

这是有道理的,因为 sAMAccountName 包含值 tobi 而非 mycompany \ tobi 。但是当仅使用 tobi 作为登录时,sonarqube不会连接到LDAP进行身份验证。我只是得到“身份验证失败”,日志文件只包含

DEBUG web[http] POST /sonar/sessions/login | time=235ms

为什么sonarqube并不总是使用LDAP?谢谢,托比

1 个答案:

答案 0 :(得分:0)

感谢Godin,我终于找到了答案:

根本原因是我在使用LDAP之前拥有一个具有相同登录凭据的本地帐户。使用Web界面删除用户时,不会从数据库中永久删除它们。相反,它们只是被停用。

我连接到(postgresql)数据库,在login表中仍然存在所有旧的本地帐户。所以我只是用

更改了所有已弃用的本地帐户的UPDATE users SET login='username_local' WHERE login='username'
{{1}}

由于这些帐户已停用,因此不能用于登录sonarqube,但不应删除,因为其他一些表可能仍会引用它们。