2017-02-20 13 views
1

私はプロジェクトに参加しています。一部の開発者は暗号化されたプロパティを読むことができます。 (@は、春のブートによるものです)私はMavenの暗号化プロパティ

<properties> 
    <database.password>someHash</database.password> 
</property> 

のようなものを必要とし、その後、フィルタリングを使用して設定ファイルに私が持っているしたいと思います:

[email protected]@ 

プロパティファイルは、コンパイル時にコンパイルされます:

password=superSecretPassword 

私はMaven Password Encryptionが役立つだろうと思ったが、いくつかの試行の後、私はそのように動作するように管理することはできません。 私はまた、Properties maven pluginを見つけましたが、また、目的の解決策を達成することに成功しませんでした。

暗号化されたプロパティをpom.xmlに格納し、パスワードを入力した後でコンパイル時に復号化する方法はありますか?

+3

最初にまず、POMにパスワードを保存しているのはなぜですか?暗号化されているかどうかは決してありません。 – Tunaki

答えて

1

@Tunakiの点は、pomやソースコードのどこにでもパスワードを置かないようにする必要があります。暗号化された資格情報を取得する1つの方法は、Spring PropertySourcesPlaceholderConfigurerのカスタム実装を作成することです。

次に、postProcessBeanFactory()をオーバーライドして、資格情報プロパティファイルの暗号化/復号化を実行できます。解読中に、解読されたプロパティー値を使ってsetProperties()を呼び出すことができます。あなたの春の設定では、プレーンテキストのプロパティ値ではなく、プロパティのプレースホルダを使用します。

データベース接続を作成するにはプレーンテキストの資格情報を回復する必要があるため、メッセージダイジェスト(またはハッシュ関数)ではなく双方向の暗号化方式を使用することに注意してください。