由于执行 Sonar runner 时出错,SonarQube 4.5.4 版中的 PDF 报告未生成报告。在发布作业执行期间,引发的错误表明用户未通过抛出 401 HTTP 状态码来获得授权。
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: org.sonar.wsclient.base.HttpException: Error 401 on http://127.0.0.1:9001/api/issues/search?pageSize=20&componentRoots=MYCODE&rules=findbugs:ODR_OPEN_DATABASE_RESOURCE
at org.sonar.wsclient.internal.HttpRequestFactory.execute(HttpRequestFactory.java:153)
at org.sonar.wsclient.internal.HttpRequestFactory.get(HttpRequestFactory.java:129)
at org.sonar.wsclient.issue.internal.DefaultIssueClient.find(DefaultIssueClient.java:49)
at org.sonar.report.pdf.builder.RuleBuilder.loadViolatedResources(RuleBuilder.java:105)
at org.sonar.report.pdf.builder.ProjectBuilder.initMostViolatedRulesFromNode(ProjectBuilder.java:248)
at org.sonar.report.pdf.builder.ProjectBuilder.initMostViolatedRules(ProjectBuilder.java:175)
at org.sonar.report.pdf.builder.ProjectBuilder.initializeProject(ProjectBuilder.java:98)
at org.sonar.report.pdf.PDFReporter.getProject(PDFReporter.java:132)
at org.sonar.report.pdf.PDFReporter.getReport(PDFReporter.java:82)
at org.sonar.report.pdf.batch.PDFGenerator.execute(PDFGenerator.java:109)
at org.sonar.report.pdf.batch.PDFPostJob.executeOn(PDFPostJob.java:70)
at org.sonar.batch.phases.PostJobsExecutor.execute(PostJobsExecutor.java:72)
at org.sonar.batch.phases.PostJobsExecutor.execute(PostJobsExecutor.java:61)
at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:132)
at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:194)
at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93)
at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78)
at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:233)
at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:228)
at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:221)
at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93)
at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78)
at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:64)
at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:51)
at org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:125)
at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93)
at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78)
at org.sonar.batch.bootstrap.BootstrapContainer.executeTask(BootstrapContainer.java:173)
at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:95)
at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87)
... 9 more
我在 SonarQube 4.5.4 版中安装了 PDF 报告 1.4 版。该 pdf 由 sonar-runner 生成为发布作业任务,报告用户未经授权。
我还使用 LDAP 对我的用户进行身份验证并在服务器上强制进行身份验证。我有:
- 配置插件生成报告;
- 为密钥 sonar.pdf.password 和 sonar.pdf.username 输入了有效的管理员用户和密码;
- 在项目仪表板中插入 PDF 报告小部件;和
- 配置用户拥有声纳管理员。
如果我删除强制身份验证选项一切正常。
我在这里想念什么?