私の春のブート構成としてapplication.ymlを使用して、プロジェクト、および私はそうではないYMLファイルは、公開コードリポジトリにプッシュされますソースコードの一部であるとして、それにDBの資格情報を書きたいです。私はproperitesファイルに資格証明書を配置する必要があり、アプリケーションのホストサーバ上のプロパティファイルのどこかに置くようにします。
だから、それはプロパティファイルにapplication.yml内の式を外部化するpossbileですか?
application.ymlと例えばスプリントブートアプリケーション
spring:
datasource:
jdbc-url: ${url}
username: ${user}
password: ${pwd}
その後、私たちは以下のようにapp.propertiesに資格情報を入れて、ホストサーバにこのファイルを置くことができます。
url="jdbc:xxxx"
user="username"
pwd="password"
これは、任意の誤用を防ぐが、私は別のファイルに資格を維持することは、状況に多くの価値を追加しません信頼するために、データベースの資格情報を保護する方法について、すべての開発者の間で非常に一般的な関心事です。
誰かが一度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
注意:これは一つの方法である、別の方法もあります
あなたはシェルスクリプト/バッチファイルを(これらのプロパティを含む)を作成し、アプリケーションを起動する前に、次に実行することができます
春のブートを使用すると、いくつかありますしなければならない。すなわち行うことを検討あなたのプロパティの値を暗号化するには。春は美しいサポートありJasypt暗号化された性質のために、あなたがほとんどになります私を信頼していない努力
あなたも探索することができボールトと秘密の管理します