Откат к локальной конфигурации, если конфигурация Spring Vault отключена
Для среды разработки я настроил bootstrap.properties
отключить настройку хранилища.
spring.cloud.vault.enabled=false
Если он отключен, приложение должно прочитать свойства из локального файла config application.properties. Но как это сделать?
В качестве обходного пути я определил локальные свойства в application.properties
как показано ниже
xyz.db.user=${xyz.db.user.fromVault:test}
xyz.db.password=${xyz.db.password.fromVault:test}
Таким образом, приложение сначала проверяет, xyz.db.user.fromVault
свойство настроено в хранилище. Если нет, то установите xyz.db.user
в test
Но это не похоже на правильный подход, так как мне нужно поддерживать несколько свойств. Есть ли правильный путь?
1 ответ
TL;DR
Это зависит.
объяснение
Предоставление запасных значений для свойств конфигурации, как правило, является хорошим способом справиться со значениями по умолчанию. Если у вас есть только несколько из них, вы можете использовать этот подход.
Тем не менее, есть одна оговорка:
Данные, хранящиеся в Vault, в некоторой степени зависят от среды и обычно конфиденциальны (имена пользователей, пароли). Это не те вещи, которые вы хотели бы хранить в своем коде или даже в файле свойств.
У вас может быть отдельный файл свойств (например, разделенный профилями), который содержит значения для вашей среды, отличной от Vault, но на самом деле вопрос заключается в том, почему вы вообще хотите указывать значения по умолчанию?
Если у вас есть удаленная база данных, требующая учетных данных, вы можете задать себе вопрос: насколько это повредит, если эти учетные данные будут открыты непреднамеренным третьим лицам? Если ваш ответ: не так много, то сохранение этих учетных данных в файле свойств, привязанных к профилю, является подходящим способом. Если сильно болит, я бы увидел два варианта:
- Используйте Vault (который решает актуальную проблему конфиденциальных данных)
- Используйте другой подход (например, базу данных в памяти), который в первую очередь устраняет необходимость в учетных данных.