我有默认配置的sonarqube 6.5。当sonar.forceAuthentication标志设置为false时,我可以通过下面给出的命令创建和分析项目。
mvn sonar:sonar -Dsonar.host.url=https://mySonarHost/sonar -Dsonar.login=mySonarUserKey
当我启用sonar.forceAuthentication参数(sonar.forceAuthentication = true)时,我无法分析项目。我总是得到maven错误:
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar (default-cli) on project storm: Not authorized. Please check the properties sonar.login and sonar.password. -> [Help 1]
它不适用于默认管理员帐户,也不适用于创建的用户帐户(具有分析项目的权限)。我也尝试过不使用用户密钥,但用户的登录名和密码(maven config中的-Dsonar.login
和-Dsonar.password
)但它也不起作用。
我尝试使用不同的声纳版本(从4.5.7到5.6.6到最新的6.5,但我总是得到相同的结果)。
在连接期间,我在access.log中收到了这样的消息:
IP_ADDRESS - - [08/Sep/2017:12:03:33 +0200] "GET /sonar/batch/index HTTP/1.1" 200 - "-" "ScannerMaven/3.3.0.603/3.5.0" "SOME_KEY"
IP_ADDRESS - - [08/Sep/2017:12:03:33 +0200] "GET /sonar/api/settings/values.protobuf HTTP/1.1" 401 - "-" "ScannerMaven/3.3.0.603/3.5.0" "SOME_KEY"
我需要将sonar.forceAuthentication参数设置为true(只有受信任的用户才能访问它)。
知道如何通过带有凭证参数的maven配置和访问sonarqube吗?
答案 0 :(得分:7)
您是否设置了sonar.login
和sonar.password
参数(https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven#AnalyzingwithSonarQubeScannerforMaven-Security)?
请注意,在最新版本(如SonarQube 6.5)中,您应该使用用户令牌,只需在sonar.login
参数中进行设置:https://docs.sonarqube.org/display/SONAR/User+Token
答案 1 :(得分:0)
这是我用于为项目更新Sonar Cube仪表板的最小命令,
mvn clean install sonar:sonar -Dsonar.host.url=<Server_URL> -Dsonar.login=<Token_For_Your_User_Id> -Dsonar.projectKey=<It will be calculated by default using group id & artifact id but its advisable that you use a unique string for all users> -Dsonar.projectName=<Descriptive Project Name to show on dashboard> -Dsonar.projectVersion=<if you wish to specify a version number>
如果字符串值中有空格,则始终可以用双引号将其引起来。
在使用上述命令之前,您需要根据Eric提供的答案中指定的用户ID生成令牌。无需传递密码属性。