Откат к локальной конфигурации, если конфигурация 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, но на самом деле вопрос заключается в том, почему вы вообще хотите указывать значения по умолчанию?

Если у вас есть удаленная база данных, требующая учетных данных, вы можете задать себе вопрос: насколько это повредит, если эти учетные данные будут открыты непреднамеренным третьим лицам? Если ваш ответ: не так много, то сохранение этих учетных данных в файле свойств, привязанных к профилю, является подходящим способом. Если сильно болит, я бы увидел два варианта:

  1. Используйте Vault (который решает актуальную проблему конфиденциальных данных)
  2. Используйте другой подход (например, базу данных в памяти), который в первую очередь устраняет необходимость в учетных данных.
Другие вопросы по тегам