如何恢复SONAR的管理员密码

时间:2013-08-13 12:26:14

标签: sonarqube

忘记了SONAR的管理员密码。用Google搜索并发现crypted_password的值应更新为8b1254c1c684c5dc904f3f174cea1cacbde4ad84,这会将密码重置为admin。但我仍然无法登录。

任何建议!

谢谢你:)

6 个答案:

答案 0 :(得分:23)

只需更新此新链接即可: http://docs.sonarqube.org/display/SONAR/Authentication

正如它在链接上所说,你可以这样做:

如果您丢失了SonarQube实例的管理员密码,可以通过执行以下查询重置它:

update users 
set crypted_password = '88c991e39bb88b94178123a849606905ebf440f5', salt= '6522f3c5007ae910ad690bb1bdbf264a34884c6d' 
where login = 'admin'

这会将密码重置为admin。

答案 1 :(得分:10)

您需要连接到声纳数据库并从那里更改管理员密码。 对于postgresql:

psql -h mysonar.dc9wocad9da.us-west-1.rds.amazonaws.com -p 5432 -U sonaruser sonardb

然后运行查询:

update users set crypted_password = '88c991e39bb88b94178123a849606905ebf440f5', salt='6522f3c5007ae910ad690bb1bdbf264a34884c6d' where login = 'admin';

您的新管理员通行证是:

user: admin
pass admin

登录后不要忘记更改管理员通行证。

来源:https://docs.sonarqube.org/display/SONAR/Authentication

答案 2 :(得分:9)

我不确定你在哪里得到这些信息。 这是official documentation to reset the passwordrecreate an admin user

答案 3 :(得分:2)

我想分享如何恢复AWS EC2上托管的Bitnami SonarQube的管理员用户密码的方式,但我认为在其他情况下也同样有效。

就我而言,我没有管理员密码,也没有数据库密码。这是我重置管理员密码所采取的步骤的列表。

  1. SSH到EC2实例
  2. 查找sonar.properties文件。就我而言,它位于/opt/bitnami/apps/sonarqube/sonarqube/conf/
  3. DATABASE部分中,我找到了属性sonar.jdbc.usernamesonar.jdbc.password,它们在我的情况下是mysql凭据,为纯文本。
  4. 使用凭据连接到mysql
mysql -uSONARQUBE_USER -p -D bitnami_sonarqube
  1. Reinstating Admin Access的{​​{3}}上,您将找到查询,该查询使您可以从数据库级别的重置管理员用户密码更改为简单的admin的默认密码。
update users set crypted_password = '$2a$12$uCkkXmhW5ThVK8mpBvnXOOJRLd64LJeHTeCkSuB3lfaR2N0AYBaSi', salt=null, hash_method='BCRYPT' where login = 'admin'
  1. 在浏览器中转到SonarQube并尝试使用凭证admin/admin
  2. 登录
  3. 不要忘记在成功登录后更改密码。

答案 4 :(得分:0)

How to generate sonarqube password hash ?

private static final class Sha1Function implements HashFunction {
@Override
public AuthenticationResult checkCredentials(UserDto user, String password) {
  if (user.getCryptedPassword() == null) {
    return new AuthenticationResult(false, "null password in DB");
  }
  if (user.getSalt() == null) {
    return new AuthenticationResult(false, "null salt");
  }
  if (!user.getCryptedPassword().equals(hash(user.getSalt(), password))) {
    return new AuthenticationResult(false, "wrong password");
  }
  return new AuthenticationResult(true, "");
}

private static String hash(String salt, String password) {
  return DigestUtils.sha1Hex("--" + salt + "--" + password + "--");
}

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import hashlib


def hash(salt, password):
    """calc sonar crypted_password
    """

    return hashlib.new(
        'sha1',
        bytes(f"--{salt}--{password}--", 'utf-8')
    ).hexdigest()



if __name__ == '__main__':
    # admin: admin

    password = 'admin'
    salt = '6522f3c5007ae910ad690bb1bdbf264a34884c6d'
    crypted_password = '88c991e39bb88b94178123a849606905ebf440f5'

    if crypted_password == hash(salt, password):
        print(f"{password} -> sonarqube hash algorithm-> {crypted_password}")

答案 5 :(得分:0)

当您丢失管理员用户密码时,密码重置可与postgres DB用户表更新一起正常使用。您可以为声纳数据库中的任何用户使用以下加密值和盐重置密码。

登录Sonar DB:

psql -U sonar_user -W
sonar_db=# select * from users;

检查表登录列,然后选择要重设密码的用户。如果您没有声纳管理控制台访问权限。

update users set crypted_password = '88c991e39bb88b94178123a849606905ebf440f5', salt='6522f3c5007ae910ad690bb1bdbf264a34884c6d' where login = 'sonara_user_name';

然后密码将为admin。 登录系统后,请确保将密码重置为您自己的密码。