当权限是任何人时,声纳分析需要身份验证

Posted

技术标签:

【中文标题】当权限是任何人时,声纳分析需要身份验证【英文标题】:sonarqube analysis requires authentication when permission is anyone 【发布时间】:2016-11-24 03:31:27 【问题描述】:

声纳 5.5 几个 Java 项目,都设置了任何人都可以执行分析的权限。 使用 mvn sonar:sonar 运行分析 其他项目工作正常,没有错误。 发现一个项目没有权限集。它正在给予:

未授权。分析这个项目需要经过身份验证。 请提供属性 sonar.login 的值和 声纳密码。

设置权限并不能修复它。该项目继续报此错误。

采取的步骤:

正在“项目权限”页面上设置权限,将“任何人”组添加到“执行分析”权限。用户 0,组 1

关闭权限然后再打开。

重启服务器。 移除本地声纳/缓存

有两个名称相同但键不同的项目。 QA 版本和发布。

不确定下一步该尝试什么。


------ 短日志 --- mvn -X 跟随

[INFO] 
[INFO] --- sonar-maven-plugin:3.0.2:sonar (default-cli) @ adminportal-api ---
[INFO] User cache: /Users/kenhargreaves/.sonar/cache
[INFO] Load global repositories
[INFO] Load global repositories (done) | time=265ms
[INFO] User cache: /Users/kenhargreaves/.sonar/cache
[INFO] Exclude plugins: devcockpit, buildstability, pdfreport, report, scmstats, buildbreaker, views, jira
[INFO] Load plugins index
[INFO] Load plugins index (done) | time=16ms
[INFO] SonarQube version: 5.5
[INFO] Default locale: "en_US", source code encoding: "UTF-8"
[INFO] -- Cache for project [com.fusemail:adminportal-api] not found, synchronizing data..
[INFO] Load rules
[INFO] Load rules (done) | time=244ms
[INFO] Load project settings
[INFO] Load project settings (done) | time=182ms
[INFO] Load project quality profiles
[INFO] Load project quality profiles (done) | time=59ms
[INFO] Load project active rules
[INFO] Load project active rules (done) | time=888ms
[INFO] Load server issues
[INFO] Load server issues (done) | time=844ms
[INFO] Load user information
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.221 s
[INFO] Finished at: 2016-07-22T11:39:38-07:00
[INFO] Final Memory: 65M/470M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:sonar (default-cli) on project adminportal-api: Not authorized. Analyzing this project requires to be authenticated. Please provide the values of the properties sonar.login and sonar.password. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 

-----------------
INFO] Default locale: "en_US", source code encoding: "UTF-8"
[DEBUG] Work directory: /Users/kenhargreaves/Documents/workspace/fm-api-portalapi/target/sonar
[DEBUG] Execution getVersion
[DEBUG] Execution execute
[DEBUG] cache: /Users/kenhargreaves/.sonar/ws_cache/http%3A%2F%2Fsonarqube.electric.net/5.5/projects/com.fusemail%3Aadminportal-api
[INFO] -- Cache for project [com.fusemail:adminportal-api] not found, synchronizing data..
[INFO] Load rules
[DEBUG] GET 200 http://sonarqube.electric.net/api/rules/list.protobuf | time=100ms
[INFO] Load rules (done) | time=176ms
[INFO] Load project settings
[DEBUG] GET 200 http://sonarqube.electric.net/batch/project.protobuf?key=com.fusemail%3Aadminportal-api&issues_mode=true | time=53ms
[INFO] Load project settings (done) | time=158ms
[INFO] Load project quality profiles
[DEBUG] GET 200 http://sonarqube.electric.net/api/qualityprofiles/search.protobuf?projectKey=com.fusemail%3Aadminportal-api | time=41ms
[INFO] Load project quality profiles (done) | time=53ms
[INFO] Load project active rules
[DEBUG] GET 200 http://sonarqube.electric.net/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives&activation=true&qprofile=c-sonar-way-50322&p=1&ps=500 | time=128ms
[DEBUG] GET 200 http://sonarqube.electric.net/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives&activation=true&qprofile=cpp-sonar-way-23842&p=1&ps=500 | time=160ms
[DEBUG] GET 200 http://sonarqube.electric.net/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives&activation=true&qprofile=java-sonar-03590&p=1&ps=500 | time=64ms
[DEBUG] GET 200 http://sonarqube.electric.net/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives&activation=true&qprofile=js-sonar-way-84357&p=1&ps=500 | time=103ms
[DEBUG] GET 200 http://sonarqube.electric.net/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives&activation=true&qprofile=objc-sonar-way-52782&p=1&ps=500 | time=123ms
[DEBUG] GET 200 http://sonarqube.electric.net/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives&activation=true&qprofile=py-sonar-way-75611&p=1&ps=500 | time=69ms
[INFO] Load project active rules (done) | time=728ms
[INFO] Load server issues
[DEBUG] GET 200 http://sonarqube.electric.net/batch/issues.protobuf?key=com.fusemail%3Aadminportal-api | time=333ms
[INFO] Load server issues (done) | time=524ms
[INFO] Load user information
[DEBUG] GET 401 http://sonarqube.electric.net/batch/users?logins=axxx.mxxxx | time=31ms
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.647 s
[INFO] Finished at: 2016-07-22T11:42:01-07:00
[INFO] Final Memory: 66M/467M

我们在那里看到的用户确实在 sonarqube 服务器中有一个帐户,我确实删除了他以查看会发生什么。

【问题讨论】:

能否请您粘贴完整的日志?我需要看看失败的确切位置。 此外,您使用属性 sonar.branch 还是初始键不同? 不使用 sonar.branch。这两个项目的密钥不同。 【参考方案1】:

在使用最新的 sonerQube 尝试声纳扫描仪时,出现以下错误

错误:未授权。分析这个项目需要 认证。请提供属性 sonar.login 的值 和 sonar.password。

解决方案是在项目根配置文件中添加 sonar.login 和 sonar.password 属性。您可以在声纳扫描仪运行期间找到它的路径

信息:扫描仪配置文件: /Users//.sonar/native-sonar-scanner/sonar-scanner-4.4.0.2170-macosx/conf/sonar-scanner.properties

使用以下属性更新此文件 声纳.登录= sonar.password=

再试一次,你的问题应该得到解决。

【讨论】:

【参考方案2】:

您是否在 SonarQube 中强制进行身份验证?

如果是这种情况,你基本上需要:

    为 SonarQube 中的用户帐户生成令牌 在环境变量中公开令牌,例如 SONAR_TOKEN,如下所示:export SONAR_TOKEN="<your_token>" (bash/GitBash)SET SONAR_TOKEN="<your_token>" (bat/Windows) 在 maven 命令中使用令牌,例如:mvn ... sonar:sonar -Dsonar.login=$SONAR_TOKEN (bash/GitBash)mvn ... sonar:sonar -Dsonar.login=%SONAR_TOKEN% (bat/Windows)

Sonarqube authorization - how to authorize with sonar-maven-plugin when sonar.forceAuthentication is enabled 对此进行了广泛讨论。

【讨论】:

在我看来,这应该是选择的答案。这是有效的,您不需要明确添加密码。【参考方案3】:

答案更简单。转到 sonarqube 网页,然后转到管理,然后转到安全并禁用“强制用户身份验证”。祝你好运!

【讨论】:

我对这条评论投了反对票,但事实证明它是解决问题的完美方法。我只在本地运行扫描,所以不用担心安全问题!很抱歉投了反对票! 你是救世主!我还尝试使用 Jacoco 运行本地声纳扫描,并且即使我在声纳属性中设置了令牌,也遇到了身份验证错误。事实证明,正如您所提到的,我们必须在“安全”选项卡中禁用此检查。非常感谢! 我正在测试 SonarQube 企业版 - 在安全性下看不到该选项 Force User Authentication @Sasha Bond - 我在管理 -> 配置 -> 安全下找到它【参考方案4】:

我遇到了同样的问题,可以解决它

将 SonarQube 配置从模块 build.gradle 移动到应用程序 build.gradle

sonarqube 
    properties 
        property "sonar.host.url", System.getenv("SONAR_URL_KEY")
        property "sonar.login", System.getenv("SONAR_LOGIN_KEY")
        ...
    

【讨论】:

以上是关于当权限是任何人时,声纳分析需要身份验证的主要内容,如果未能解决你的问题,请参考以下文章

声纳 PAM 身份验证

shiro权限框架

SQL Server 数据库权限设置

SQL server数据库的权限设置

通过 Spring security ldap 对用户进行身份验证时未授予任何权限错误

linux 访问需要身份验证怎么解决