我正在使用带有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?谢谢,托比
答案 0 :(得分:0)
感谢Godin,我终于找到了答案:
根本原因是我在使用LDAP之前拥有一个具有相同登录凭据的本地帐户。使用Web界面删除用户时,不会从数据库中永久删除它们。相反,它们只是被停用。
我连接到(postgresql)数据库,在login
表中仍然存在所有旧的本地帐户。所以我只是用
UPDATE users SET login='username_local' WHERE login='username'
列
{{1}}
由于这些帐户已停用,因此不能用于登录sonarqube,但不应删除,因为其他一些表可能仍会引用它们。