令牌+项目配置=权限不足

时间:2016-03-02 17:09:59

标签: sonarqube

我使用 sonar.login 中的令牌和 sonar.branch 中的字符串调用MSBuild.SonarQube.Scanner.exe。

执行失败,出现以下错误:

13:42:03.817 INFO  - Analysis report generated in 271ms, dir size=497 KB
13:42:04.624 INFO  - Analysis reports compressed in 806ms, zip size=212 KB
13:42:04.624 DEBUG - Upload report
13:42:05.125 DEBUG - POST 403 http://192.168.18.21:9000/api/ce/submit?projectKey=XYZ&projectName=Its%20XYZ&projectBranch=lala | time=501ms
13:42:05.127 INFO  - Analysis report generated in C:\Develop\XYZ\.sonarqube\out\.sonar\batch-report
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
Total time: 41.303s
Final Memory: 9M/270M
INFO: ------------------------------------------------------------------------
ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
        at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
        at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
        at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
        at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
        at org.sonar.runner.api.Runner.execute(Runner.java:100)
        at org.sonar.runner.Main.executeTask(Main.java:70)
        at org.sonar.runner.Main.execute(Main.java:59)
        at org.sonar.runner.Main.main(Main.java:53)
Caused by: Insufficient privileges

为名为 Scanner 的用户生成令牌,该用户位于 sonar-users 组中。 他拥有执行分析执行预览分析提供项目的全局权限。

如果我对现有项目执行相同的操作。似乎不允许令牌提供项目。这可能吗?

编辑: SonarQube 5.3 MSBuild.SonarQube.Scanner 1.1

编辑2:我们使用LDAP(AD)身份验证

编辑3:access.log中的最后一个条目

[02/Mrz/2016:18:44:43 +0100] "POST /api/ce/submit?projectKey=XYZ&projectName=Its XYZ&projectBranch=lala HTTP/1.1" 403 46 "-" "SonarQubeRunner/2.4"

进一步调查:

通过命令行调用MSBuild.SonarQube.Scanner.exe,如:

MSBuild.SonarQube.Runner.exe /key:XYZ /name:"Its XYZ" /version:1.0.0.0 /d:sonar.branch=lala /d:sonar.scm.provider=git /d:sonar.host.url=http://192.168.18.21:9000 /d:sonar.login=<token>

这不起作用。

但是,如果我将 sonar.login 属性放在 SonarQube.Analytics.xml 中,它就能正常工作。那么MSBuild.SonarQube.Runner.exe命令行是否会忽略 /d:sonar.login

编辑:目前任何被允许执行分析,所以也许这就是除了配置之外所有其他任务都有效的原因。

1 个答案:

答案 0 :(得分:1)

好吧,似乎我必须将令牌 /d:sonar.login = 传递给 MSBuild.SonarQube.Scanner.exe结束的调用 - 因为它不是在SonarQube.Analytics.xml中定义。听起来很清楚--.-