刚刚建立了一个全新的SonarQube 6.7.1 服务器,并将其配置为通过LDAP插件( 2.2 build 608 )对用户进行身份验证。到目前为止一切都很好。
但是,当用户尝试运行命令行时,使用带有令牌的maven进行扫描:
mvn sonar:sonar -Dsonar.login=438fd33be6d6e5c9146c674717fea4675f0eb
......他们收到以下错误:
Not authorized. Please check the properties sonar.login and sonar.password.
声纳日志显示:
2018.01.19 18:20:14 DEBUG web[AWELLmgpg7dbJTF2AALW][o.s.p.l.LdapUsersProvider] User 438fd33be6d6e5c9146c674717fea4675f0eb not found in <default>
2018.01.19 18:20:14 DEBUG web[AWELLmgpg7dbJTF2AALW][auth.event] login failure [cause|No user details][method|BASIC][provider|REALM|LDAP]
这使得Sonar的LDAP插件试图在名称为访问令牌的LDAP上查找用户。显然这不起作用!
我们正在使用声纳maven插件版本 3.4.0.905 。
编辑:同一令牌适用于IntelliJ SonarLint。这似乎指向Maven插件在这里有问题。
答案 0 :(得分:1)
感谢@agabrys的提示。
运行此Maven命令:
mvn clean verify help:evaluate -Dexpression="sonar.password" -Dsonar.login=438fd33be6d6e5c9146c674717fea4675f0eb
返回:
admin
要接受令牌,密码必须为空。它必须是设置此默认密码的Maven声纳插件!通过以下方式将默认密码设置为空:
mvn clean verify sonar:sonar -Dsonar.password= -Dsonar.login=438fd33be6d6e5c9146c674717fea4675f0eb
的工作。