Как восстановить пароль администратора для SONAR
Забыл пароль администратора для SONAR. Googled и обнаружил, что значение для crypted_password
должно быть обновлено до 8b1254c1c684c5dc904f3f174cea1cacbde4ad84
, которое будет reset пароль для администратора. Но все же я не могу войти.
Любой совет!
Спасибо:)
Ответы
Ответ 1
Просто обновите эту новую ссылку здесь:
http://docs.sonarqube.org/display/SONAR/Authentication
Как говорится в ссылке, вы можете это сделать:
Если вы потеряли пароль администратора вашего экземпляра SonarQube, вы можете reset его, выполнив следующий запрос:
update users
set crypted_password = '88c991e39bb88b94178123a849606905ebf440f5', salt= '6522f3c5007ae910ad690bb1bdbf264a34884c6d'
where login = 'admin'
Это будет reset пароль для администратора.
Ответ 2
Вам необходимо подключиться к сонарной БД и оттуда изменить пароль администратора. Для 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
Ответ 3
Я не уверен, откуда у вас информация. Вот официальная документация для сброса пароля и воссоздания админа
Ответ 4
Как создать хэш пароля sonarqube?
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
Все,
Я использую sonarqube в качестве контейнера, а официальный документ SonarQube неверен.
Шаг размещен здесь, правильно. У него есть зашифрованный пароль с 40 символами и символами для параметра соли.
обновить пользователей set crypted_password = '88c991e39bb88b94178123a849606905ebf440f5', salt= '6522f3c5007ae910ad690bb1bdbf264a34884c6d' где login = 'admin';
В официальном документе (Восстановление доступа администратора - https://docs.sonarqube.org/latest/instance-administration/security/) указана неправильная команда, см. Ниже:
обновить пользователей set crypted_password = '$ 2a $ 12 $ uCkkXmhW5ThVK8mpBvnXOOJRLd64LJeHTeCkSuB3lfaR2N0AYBaSi', salt= null, hash_method = 'BCRYPT' где login = 'admin'
Выходная команда представляет зашифрованный пароль с ошибкой и с параметром алгоритма соли, который является нулем.
Спасибо,