問題タブ [jasypt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Jasypt 暗号化が Maven プロファイルで機能しない
最終的にデータベースへのログインに使用される (以前に暗号化された) プロパティ値を jasypt で復号化しようとしています。Maven プロファイルを導入する場合を除いて、復号化は正常に機能します。環境固有のプロパティ ファイルの local/dev/prod セットがあります。
これが私のspring3構成の関連部分です。これは、コード例の中で最も重要な部分です。これは、復号化がどのようにセットアップされ、どの復号化された文字列がサンプル ダミー Bean に設定されるかを駆動します。
私の maven pom の 1 つで、ここでプロファイルを指定します。
私はjasyptバージョン1.9.1を使用しています:
/src/main/resources にメイン データベース プロパティ ファイル (database.properties) を設定しました。これには次のプレースホルダー プロパティがあります。
次に、 /src/main/resources/properties/local/database.properties にあるローカル プロパティ ファイルを次に示します。
これは、Spring Bean のサンプル コードで、設定されたプロパティを読み取るだけです。すべてが機能する場合、値は復号化された stdout に出力されます。
春の構成を微調整して、通常はプロパティごとの環境オーバーライドのプレースホルダーだけを含むメイン プロパティ ファイルにあるプロパティを読み込むと、復号化が機能します。ただし、ローカル プロパティ ファイルから暗号化されたプロパティを読み取ろうとしても、復号化は機能しません。おそらくそれが単なるクラスパスの問題であることを期待して、春の構成を微調整しようとしてかなりいじりましたが、それも役に立たなかったようです。
おそらく暗号化する必要があるプロパティに対してのみ、Spring がプロパティのプレフィックスとサフィックスをどのように見るかをオーバーライドする必要がありますか? (そうすると、Jasypt の EncryptablePropertyPlaceholderConfigurer は Spring の PropertyPlaceholderConfigurer のドロップイン置換であるため、暗号化可能なプロパティだけでなく、すべてのプロパティに適用できるように見えます)。
説明したように 2 つのプロパティ ファイルを設定した場合のプログラムの出力は次のとおりです。
what's my property being set??: ENC(RSuprdBgcpdheiWX0hJ45Q==)
メイン プロパティ ファイルに暗号化されたプロパティが含まれている場合のプログラムの出力は次のとおりです。
what's my property being set??: sa
問題が Spring なのか Jayspt なのかはわかりません。私はそれがMavenだとは思わない。可能であれば、現在の Maven プロファイルを捨てたくありません。
明確にするために編集された、ランタイムの例。
*更新* : Jasypt Spring 構成方法を使用すると、値が正しく復号化されていることを確認できます
<encryption:encryptable-properties id="dbProps" encryptor="jvmConfigurationEncryptor" location="classpath:database.properties"/>
次に、テスト Bean でメンバーを結び付けて、プロパティを割り当てることができます。
これはうまくいくようです。しかし、データベース構成を適切にボタンアップできるように、PropertyOverride が機能することが本当に必要です。
java - Spring 構成ファイル内のパスワードの暗号化
コンストラクターパラメーターの一部としてユーザー名/パスワードを使用する Spring Bean があります。
jasypt を使用して、構成ファイルのみからこれらのパラメーターを暗号化できますか? Bean「org.apache.commons.httpclient.UsernamePasswordCredentials」はプレーンテキスト値でインスタンス化されますが、ユーザーには暗号化されているように見えます。
この回答を使用して、コアJavaライブラリコードを使用できます:構成ファイルでパスワードを暗号化しますか? Java 内から Bean mysender を手動で作成し、org.apache.commons.httpclient.UsernamePasswordCredentials をインスタンス化する前にフィールドを depcript します。
または、これを実装する、私が言及していない試行済みの方法はありますか?
spring - 環境変数を使用して EncryptablePropertyPlaceholderConfigurer (jasypt) を構成する方法
SPRING から PropertyPlaceholderConfigurer を拡張する EncryptablePropertyPlaceholderConfigurer (JASYPT 1.8) の xml を構成しています。次のように、プロパティ ファイルの場所の代わりに環境変数を配置する必要がありますが、機能していません。どうすれば設定できるかについて誰か知っていますか?
ファイルの実際のパスを入力すると、すべてが正常に機能します。
java - テキストを暗号化するときに Jasypt を使用してパスワードを設定するのはなぜですか?
私が使用するパスワードを暗号化するには ( http://www.jasypt.org/encrypting-texts.htmlから変更):
にパスワードを設定する必要があるのはなぜBasicTextEncryptor
ですか?
ここで基本的なことを理解していない可能性がありますが、これは意味がありませんが、機能しません:
java - 次のタイプを判別できませんでした: org.jasypt.hibernate.type.EncryptedStringType
jasypt と hibernate を使用してデータベース コンテンツを暗号化しようとしています。常にこのエラーメッセージが表示されます。Maven、休止状態 4、および jasypt 1.9.1 を使用しています。詳細が必要な場合は、お知らせください。誰でも私を助けることができますか?
皆さん、ありがとうございました
私の User.java ファイルからのコード:
hibernate.cfg.xml:
jasyptHibernateTypes.hbm.xml :
および applicationContext.xml: