Можно ли поместить переменные application.yml в файл свойств? - PullRequest
2 голосов
/ 01 октября 2019

мой весенний загрузочный проект, использующий в качестве конфигурации application.yml, и я не хочу записывать в него учетные данные БД, поскольку файл yml является частью исходного кода, который будет помещен в общедоступный репозиторий кода. Поэтому мне нужно поместить учетные данные в файл Properites и поместить файл свойств где-нибудь на сервер хоста приложения.

Итак, возможно ли перенести выражение из application.yml в файл свойств?

Например, загрузочное приложение sprint с application.yml

spring:
  datasource:
    jdbc-url: ${url}
    username: ${user}
    password: ${pwd}

, затем мы можем поместить учетные данные в app.properties, как показано ниже, и поместить этот файл на хост-сервер.

url="jdbc:xxxx"
user="username"
pwd="password"

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Вы можете сделать это, вызвав файл application.properties.

Но имейте в виду, что имена свойств должны быть похожи на структуру yaml:

spring.datasource.url="jdbc:xxxx"
spring.datasource.user="username"
spring.datasource.pwd="password"
0 голосов
/ 02 октября 2019

Это очень распространенная проблема среди всех разработчиков, как защитить учетные данные базы данных, чтобы предотвратить любое неправильное использование, но, поверьте, хранение учетных данных в отдельном файле не принесет особой пользы в ситуацию.

Если кто-тоспособный получить доступ к вашему application.yml, тогда однажды вы также сможете получить доступ к вашему файлу свойств, находящемуся в отдельной папке.

Поняв вашу проблему, что вам нужно отправить свой код в публичный репозиторий, вы должнызащитить то, что твое. У меня мало входных данных.

  • вам не нужен отдельный файл свойств и соответствующая переменная в вашем application.yml, вы можете предоставить свои значения и всегда можете переопределить их вне приложения во время приложения

для примера

spring:
  datasource:
    jdbc-url: myFakeURL
    username: MyFakeUserName
    password: myFakePAssword

как только вы их определили, вы можете переопределить их как

java -jar -Dspring.datasource.jdbc-url=myRealURL  -Dspring.datasource.jdbc-username=myRealUserName  -Dspring.datasource.password=myRealpassword   myApplication.jar 

Помните: это один способ, есть и другие способы

Вы можете создать сценарий оболочки / пакетный файл (содержащий эти свойства) и затем выполнить перед запуском приложения

При весенней загрузке есть несколько вещей, которые ДОЛЖЕН рассмотреть, например, шифрование значений вашего свойства . Spring имеет прекрасную поддержку с Jasypt для зашифрованных свойств и поверьте мне, вам почти не нужно усилий

вы также можете исследовать Управление секретами с хранилищем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...