web-dev-qa-db-ja.com

春のブートで重要な資格情報を定義する最良の方法

Spring Bootアプリケーションを使用する場合、異なるapplication.propertiesさまざまな環境に応じたファイル。

データベース構成、サーバーIP、管理者のユーザー名/パスワードなどの重要な認証情報を入力します。

私が誰かがアプリケーションのプロパティを取得し、すべての重要な詳細を取得するとどうなるかを心配しています。

重要な認証情報をどこかに配置して、環境に基づいたSpring Bootアプリケーションで取得するための良いアプローチはありますか?

13
Abhishek saini

多くのテクニック

  • トークン置換の使用(maven replacor)

    application.properties spring.datasource.password=#MY_DB_PASSWORD#
    tokens.properties #MY_DB_PASSWORD#=SECRET_PASSWORD

    tokens.propertiesにはアクセス保護があります

  • 環境変数の使用
    mvn spring-boot:run -Dspring.datasource.password=SECRET_PASSWORD

    または単に
    spring.datasource.password=${myDbPasswordEnv}

  • プロパティを暗号化するために Jaspyt を使用する

5
Halayem Anis

1つの解決策は、アプリケーションプロパティで環境変数とプロパティプレースホルダーを使用することです。たとえば、データベースのパスワードを保存するとします。環境変数を作成します。

setx DEV_DB_PASS <your_dev_database_password>

これで、アプリケーションプロパティファイルで、この値に次のようにアクセスできます。

spring.datasource.password = ${DEV_DB_PASS}

公式ドキュメントを参照できます。

1
Prashant

Spring Cloud Configを使用する必要があります。 gitリポジトリなどを使用して中央で構成を管理するのに最適です。

0