web-dev-qa-db-ja.com

SonarQubeの管理者パスワードを回復する方法

SonarQubeの管理者パスワードを忘れました。 Googleが検索したところ、crypted_passwordの値を8b1254c1c684c5dc904f3f174cea1cacbde4ad84に更新する必要があることがわかりました。これにより、パスワードがadminにリセットされます。それでもログインできません。何かアドバイス?

18
Sivakumar

これへの更新のみ、新しいリンクはここにあります: http://docs.sonarqube.org/display/SONAR/Authentication

リンクに記載されているように、これを行うことができます:

SonarQubeインスタンスの管理者パスワードを紛失した場合は、次のクエリを実行してリセットできます。

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

これにより、パスワードがadminにリセットされます。

25
zpontikas

Sonar DBに接続し、そこから管理者パスワードを変更する必要があります。 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

11
Andrzej Rehmann

どこで情報を得たかはわかりません。 パスワードをリセットするための公式ドキュメント および 管理者ユーザーを再作成する を以下に示します。

ソナークパスワードハッシュを生成する方法は?

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}")
0
debug