You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SonarScanner.MsBuild执行报错:无效凭证致访问被拒,求排查

问题诊断

你的Unauthorized: Access is denied due to invalid credentials错误源于认证凭证配置错误,具体问题如下:

1. 误用项目令牌替代用户令牌

你在扫描命令中使用的sqp_开头的是项目令牌,这类令牌仅用于限定第三方工具对单个项目的只读访问,无法用于执行代码扫描操作。扫描必须使用用户令牌(格式为squ_开头,也就是你在SonarQube中创建的那个令牌)。

2. 配置文件中存在冲突的认证参数

SonarQube.Analysis.xml里同时配置了sonar.login、sonar.password和sonar.token,这会让SonarScanner的认证逻辑混乱:

  • 当sonar.token存在时,账号密码参数会被忽略,但你命令行里传入了错误的令牌,直接导致认证失败。
  • 正确做法是只保留一种认证方式:要么用账号密码组合,要么用用户令牌(二选一即可)。

3. 命令行参数覆盖了正确配置

你命令行中指定的sonar.token是错误的项目令牌,它会覆盖配置文件里的正确用户令牌,这是直接触发错误的原因。


修复方案
  1. 修正扫描命令:把命令里的sqp_ec60....a7e1替换成你生成的用户令牌(squ_7b.......601):
SonarScanner.MSBuild.exe begin /k:"TEST_PROJECT-local" /d:sonar.host.url="http://localhost:9000" /d:sonar.token="squ_7b.......601"
  1. 清理配置文件冗余项:编辑SonarQube.Analysis.xml,删除sonar.login和sonar.password,只保留必要配置:
<Property Name="sonar.host.url">http://localhost:9000</Property>
<Property Name="sonar.token">squ_7b.......601</Property>
  1. 验证令牌权限:确保生成用户令牌的账号拥有TEST_PROJECT-local项目的扫描者或管理员权限,权限不足也会触发认证失败。

  2. 重新执行扫描流程:删除项目根目录下的.sonarqube缓存文件夹,然后依次执行:

    • 修正后的begin命令
    • 你的项目构建命令(比如MSBuild.exe或dotnet build)
    • SonarScanner.MSBuild.exe end命令完成扫描

内容的提问来源于stack exchange,提问作者rbasniak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 14:52:53