Хранение паролей и ключей авторизации за пределами БД
Здравствуйте,
Подскажите пожалуйста, как лучше хранить учетные записи, ключи и другие настройки вне базы данных (таблица modx_system_settings)?
Например я хочу отправлять почту через mailgun но пароль хочу хранить с помощью сервиса HashiCorp Vault.
т.е перед инициализацией класса modMail мне нужно переопределить настройки mail_smtp_pass и mail_smtp_user для авторизации на удаленном сервере.
Я пробовал с помощью плагина (событие OnMODXInit), но при таком подходе данные сохраняются в БД. Как можно это сделать без сохранение данных в БД?
Спасибо
$setting = $modx->getObject('modSystemSetting', 'mail_smtp_user');
$setting->set('value', $_ENV['RB_SMTP_USER']);
$setting->save();
$setting = $modx->getObject('modSystemSetting', 'mail_smtp_pass');
$setting->set('value', $_ENV['RB_SMTP_KEY']);
$setting->save();
$modx->cacheManager->refresh(array('system_settings' => array()));
Техническая поддержка MODX
Сайт лежит, тормозит или остался без разработчика?
Переезд с MODX 2 на 3, PHP 7 на 8, скорость и безопасность. Поддержка со сроками и ответственностью, а не совет в чате.
Подробнее
Реклама
Комментарии: 3
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
В частности посмотри код плагина.
Действительно в ClientConfig используется setOption для переопределения системных параметров. Правда он вызывается довольно часто, каждый раз при инициализации modx. К сожалению другого метода не нашел. Думал через кеш решить этот вопрос, но секюрные данные хранить в кеше не хорошо, а установка и сохранение системных настроек приводит к появлению их в БД