【问题标题】:Receiving "Not authorized" error after upgrading to SonarQube 4.2升级到 SonarQube 4.2 后收到“未授权”错误
【发布时间】:2014-05-22 22:46:36
【问题描述】:

使用 Maven Sonar 插件执行声纳分析时:

  1. 没有任何其他变化,除了从 SonarQube 3.7 升级到 4.2

  2. 我们收到以下错误:

    [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.2:sonar (default- cli) on project museum-mobile: Can not execute SonarQube analysis: Not authorized. Please check the properties sonar.login and sonar.password. -> [Help 1]

  3. 我们的帐户仍被列为“sonar-administrator”,拥有对所有全局权限的完全访问权限:管理质量配置文件、管理系统、执行分析、执行预览分析、配置项目、共享仪表板和过滤器

  4. 当我们使用默认的“admin”帐户运行时,我们能够执行分析。

环境:

  • Windows 7 64 位
  • Java JDK 1.6.0_31 和 1.7.0_25
  • Maven 3.0.5
  • sonar-maven-plugin 2.0 和 2.3

JIRA 打开:MSONAR-66

【问题讨论】:

  • 你是从哪个版本升级的?
  • 如果您是从低于3.7的版本升级的,那么该帐户可能没有“执行分析”权限。见docs.codehaus.org/display/SONAR/…
  • 或者说明你开启了强制认证功能。见docs.codehaus.org/display/SONAR/Authentication
  • “从 SonarQube 3.7 升级到 4.2”
  • 我添加了上面的每个全局权限。升级是从 3.7(工作)到 4.2(不工作)。我们将检查强制身份验证功能。那是4.2的新内容吗?在阅读了该功能后,我不确定它如何解释为什么我的 sonar-administrator 组中的用户无法再执行分析。

标签: sonarqube


【解决方案1】:

我已经发送了 3-4 封电子邮件,说明了我们面临的问题和问题。正如 Jared 和 David 所提到的,我还发送了一份摘要。

上述cmets和问题的答案:- Q- 你是从哪个版本升级的? ——西蒙·布兰德霍夫昨天 -
3.7**

Q-如果您是从低于 3.7 的版本升级的,那么该帐户可能没有“执行分析”权限。请参阅 docs.codehaus.org/display/SONAR/… – Simon Brandhof 昨天。 - 我们将其设置为群组中的任何人。我们还将它设置为 sonar-users/sonar-administrators,这意味着可以访问系统中的所有用户。

Q-或者表示你开启了强制认证功能。请参阅 docs.codehaus.org/display/SONAR/Authentication。 – David RACODON - SonarSource 昨天

- sonar.forceAuthentication=true 已设置为 true。是的,它是正确的。
“从 SonarQube 3.7 升级到 4.2” – David M. Karr 昨天 -正确的。

Q-我添加了上面的每个全局权限。升级是从 3.7(工作)到 4.2(不工作)。我们将检查强制身份验证功能。那是4.2的新内容吗?

在阅读了有关该功能的信息后,我不确定它会如何解释为什么我的 sonar-administrator 组中的用户无法再执行分析。 – 贾里德昨天

- 它设置为 true,但它是必需的,我们希望对用户进行身份验证。

谢谢,

杰特什

【讨论】:

    【解决方案2】:

    无论出于何种原因,4.2 版都必须使用“admin”用户 ID 来执行分析。我们可以通过执行以下操作来解决此错误:

    1. 创建一个新的默认管理员用户并将其命名为您的任何名称 喜欢。我们使用了“sonar_admin”。
    2. 对于“admin”用户 ID,确保它具有“执行分析”权限,并且如果您希望它向 Sonarqube“Provision Projects”添加新项目。
    3. 您可以将“admin”的密码更改为您喜欢的任何密码。
    4. 确保在构建脚本中定义了 sonar.login 和 sonar.password 属性,并设置为“admin”用户 ID 和密码。

    【讨论】:

    • 如我的回答中所述,“admin”可能默认工作,因为我们默认有“sonar.security.localUsers=admin”。
    【解决方案3】:

    如果您在 Sonar 安装中使用 LDAP 用户,并且非 LDAP 用户使用 maven sonar 插件,这可能会解释问题:

    http://sonarqube.15.x6.nabble.com/cannot-login-to-sonar-using-created-user-and-ldap-td5025428.html http://jira.codehaus.org/browse/SONAR-4543

    我修复了像这样编辑 sonar.properties 的问题:

    # LDAP
    sonar.security.realm=LDAP
    sonar.security.localUsers=admin,jenkinsuser
    ldap.url=....
    

    【讨论】:

    • 这就解释了。我们将研究从内部数据库切换。我认为应用程序应该在创建内部帐户和使用 LDAP 时警告您...
    • 是的,我同意这个警告,但我也觉得实现起来并不容易。有一个简单的解决方法,tought。我编辑了答案以明确显示修复。
    【解决方案4】:

    您只需要添加以下 2 个属性即可使其工作 - 声纳.登录= sonar.password=

    可以通过 2 种方式添加这些属性: 1. 通过在 build.xml 中使用声纳目标设置它 2. 通过使用-Dsonar.login=admin -Dsonar.password=password 设置系统属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多