Проблема с инициализацией FAM Server при первоначальной установке

Пример ошибки:

idp@avanpost:/opt/idp$ ./fam_linux_amd64 –init

panic: runtime error: slice bounds out of range [:-57]
 
goroutine 1 [running]:
devenv.avanpost.ru/idp/idp/pkg/x/security.(*AESEncryptor).unpadding(...)
        /home/jenkins/workspace/SSO/Server/master/pkg/x/security/encryptor.go:42
devenv.avanpost.ru/idp/idp/pkg/x/security.(*AESEncryptor).Decrypt(0xc0026800d8, {0xc0021e9680?, 0xc?})
        /home/jenkins/workspace/SSO/Server/master/pkg/x/security/encryptor.go:81 +0x1b2
devenv.avanpost.ru/idp/idp/pkg/oauth2/manager.(*ClientManager).GetClientByID(0xc000288c30, {0x1ac71be?, 0x7f4b04a9f5b8?})
        /home/jenkins/workspace/SSO/Server/master/pkg/oauth2/manager/client_manager.go:50 +0x54
devenv.avanpost.ru/idp/idp/pkg/appcommand.UpdateServiceClient({0x1ac71be?, 0xc001bb1f40?}, {0xc0006519e2, 0x20}, {0x1ac08e7, 0x9})
        /home/jenkins/workspace/SSO/Server/master/pkg/appcommand/appcommand.go:31 +0x68
devenv.avanpost.ru/idp/idp/pkg/product/runner.(*program).init(0xc0005f6308)
        /home/jenkins/workspace/SSO/Server/master/pkg/product/runner/runner.go:871 +0x1f2a
devenv.avanpost.ru/idp/idp/pkg/product/runner.Run({0x1e2aa80, 0xc0007932c0})
        /home/jenkins/workspace/SSO/Server/master/pkg/product/runner/runner.go:552 +0x199a
main.main()
        /home/jenkins/workspace/SSO/Server/master/cmd/fam/main.go:15 +0x157

Возможная причина проблемы:
Из-за многократной переустановки FAM Server и миграции БД, возможно менялся ключ шифрования key.dat, который не соответствует ключу, используемый в текущей БД.

encryptionKey = ‘key.dat’ – критически важный файл. Отвечает за расшифровку подключения к БД. Если переносится база, то переносится и сам файл. Если файл удалён, то придётся создать новую базу.

Решение проблемы:

  1. Зайти в интерактивный терминал PostgreSQL psql
sudo -u postgres psql
  1. Удалить старую базу данных:
DROP DATABASE idp
  1. Создать новую БД:
CREATE DATABASE idp OWNER=avanpost ENCODING=utf8;
  1. Выйти из интерактивного терминала:
\q
  1. Создать новый ключ шифрования:
./fam_linux_amd64 -generatekey
  1. Произвести миграцию базы данных:
./fam_linux_amd64 -migratedb postgres
  1. Выполнить команду Инициализации приложения:
./fam_linux_amd64 -init
1 лайк