我正在测试 sonarqube 5.6 的升级,并安装了 ldap 2.0 插件并将相关配置复制到我的测试 5.6 设置中。
相关配置是
sonar.security.realm=LDAP
ldap.url=ldaps://xxxx:636
ldap.bindDn=uid=xxxx,ou=xxxx,dc=xxxx,dc=xxxx
ldap.bindPassword=xxxx
ldap.user.baseDn=dc=xxxx,dc=com
ldap.user.request=(&(objectClass=person)(mail={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail
我在conf/sonar.properties中有以下设置
sonar.log.level=DEBUG
启动时我看到
2016.07.26 23:57:29 INFO web[o.s.p.l.LdapContextFactory] Test LDAP connection on ldaps://xxxx:636: OK
2016.07.26 23:57:29 INFO web[org.sonar.INFO] Security realm started
如果我尝试登录,我会在登录屏幕上看到“身份验证失败”。
日志文件除此之外什么也没说
2016.07.26 23:57:47 DEBUG web[http] GET / | time=67ms
2016.07.26 23:57:47 DEBUG web[http] GET / | time=187ms
2016.07.26 23:57:47 DEBUG web[http] GET /sessions/new | time=89ms
2016.07.26 23:57:53 DEBUG web[http] POST /sessions/login | time=71ms
相同的配置适用于 sonarqube 4.5.7 和 ldap 1.4
欢迎提出有关如何进一步调查的想法。
您很可能遇到已知问题声纳-7770 - 如果升级过程中忘记 LDAP 配置,身份验证将失败。请注意,升级注意事项针对这个问题发布了:
最特别的是,不要忘记将“conf/sonar.properties”中的相关 SonarQube 插件及其相关配置(包括“sonar.security.realm”和“sonar.security.localUsers”(如果存在))复制到新的 SonarQube 实例中否则您将在迁移后被锁定。
因此,此 LDAP 配置的存在非常重要during升级。如果您确实错过了这一点,那么这里最简单的方法是使用正确设置的 LDAP 相关配置来重播升级。
Context
请记住,在升级期间,SonarQube 会更新数据集,并将新信息存储在数据库中(基于新功能)。您的情况的问题是升级是通过部分配置完成的(未设置sonar.security.realm
and sonar.security.localUsers
) ,并且 SonarQube 无法确定用户是否是本地用户,因此默认将其视为本地用户。本地用户不是针对外部身份验证提供程序进行身份验证,而是在本地进行身份验证,这确实是我们在日志中看到的内容(并且显然失败了,因为密码位于 LDAP 服务器中,而不是在 SonarQube 数据库中)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)