2016-03-02 108 views
1

我打电话MSBuild.SonarQube.Scanner.exe在sonar.login令牌和sonar.branch的字符串。令牌+项目=配置权限不足

执行失败,出现以下错误:一个称为扫描器用户产生

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 

令牌和用户是该组声纳用户英寸 他拥有全球权限执行分析,执行预览分析规定项目

如果我对现有的项目执行相同的工作。看来这个令牌不允许配置一个项目。这可能吗?

编辑:SonarQube 5.3MSBuild.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> 

这是行不通的。

但是,如果我放在SonarQube.Analytics.xml它的工作原理中的sonar.login财产。那么MSBuild.SonarQube.Runner.exe命令行会忽略/d:sonar.login

编辑:目前任何被允许执行分析,所以也许这就是为什么所有其他任务,除了供应工作。

+0

您的日志太短,我们无法知道它在哪里失败。你可以请张贴更多的日志,并且如果可能的话在调试模式下激活? (你可以在pastebin.org上发布它 - 它会更好) –

+0

谢谢Fabrice。我尝试获得更多日志。 顺便说一句:有一些关于api/ce/submit的文档吗? – philipooo

+0

@ Fabrice-SonarSourceTeam以下是日志(debugmode中的sonar.log + access.log)http://pastebin.com/LHBQupRQ感谢您的关注! – philipooo

回答

1

好吧,看来我要令牌/d:sonar.login=传递给MSBuild.SonarQube.Scanner.exe结束过的号召 - 因为它不是SonarQube.Analytics.xml中定义。现在听起来很清楚 -

+0

是的,由于安全原因,MSBuild扫描仪不保留磁盘上的凭据,所以你需要将这两个都传递给'begin'和'end'步骤 –

+0

绝对正确! @迪内希 - SonarSourceTeam – philipooo