Пароль шифруется и дешифруется с помощью Spring-security - PullRequest
0 голосов
/ 02 июля 2018

Предисловие: у меня есть JAR, который разработан с использованием spring-boot (проект maven). Затем я получу доступ к своей папке JAR и выполню следующую команду, чтобы выполнить ее:

java -server -jar ${jarName}
--spring.config.location=classpath:config.properties

Таким образом, мой JAR считывает пары {key, value} из файла свойств и выполняет соответствующий код. Это работает без проблем, но у меня есть несколько свойств в моем файле config.properties, в котором есть детали БД для прямого подключения к базе данных Oracle. У него также есть имя пользователя и пароль для супер администратора.

Я не хочу выдвигать этот код на bit-bucket/stash/git, поскольку в нем хранятся все мои пароли.

Обход : я могу отправить свой код на git/stash с пустыми паролями, а затем выполнить указанную ниже команду, чтобы внедрить файл свойств с помощью команды --spring.config.location следующим образом

java -server -jar ${jarName}
--spring.config.location=./config.properties

Вопрос: Как зашифровать и расшифровать строку / пароль в весенних приложениях?

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

Ответы [ 3 ]

0 голосов
/ 02 июля 2018

Обычно я помещаю этот тип конфигурации в переменные окружения сервера. Вы можете заменить свой пароль в файле application.properties на $ {MY_PASSWORD}, а затем поместить пароль в переменные окружения (очень полезно для docker).

Вы также можете использовать два файла: application-dev.properties с паролем вашей базы данных dev и application-prod.properties со ссылкой на переменные среды, чтобы упростить разработку.

0 голосов
/ 11 декабря 2018

Я сохранил имя пользователя приложения, пароль в текстовом файле на сервере. Затем я использовал плагин для шифрования и дешифрования и использования в моем приложении. таким образом я могу зарегистрировать весь код в git, у которого вообще не будет паролей.

0 голосов
/ 02 июля 2018

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

Пример:

  • application.properties: общие свойства, которые вы хотите передать в хранилище
  • database.properties: свойства должны храниться в секрете и на локальной машине

.gitignore

database.properties

Затем вы можете использовать аннотации Spring для загрузки файлов свойств во время выполнения.

@PropertySource(value = { "application.properties", "database.properties" })
...