私はdbパスワード暗号化に使用するjasypt 1.9.0を使用しています
jdbc.properties
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:XE
jdbc.username=aosmaster
jdbc.password=ENC(aiQkX+5+EicZU3x0/ZWeW9ExV+OW/yc+)
アプリケーションコンテキスト.xml
<bean class="org.jasypt.spring.properties.EncryptablePropertyPlaceholderConfigurer">
<constructor-arg>
<bean class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
<property name="config">
<bean class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
<property name="algorithm" value="PBEWithMD5AndDES" />
<property name="passwordSysPropertyName" value="APP_ENCRYPTION_PASSWORD" />
</bean>
</property>
</bean>
</constructor-arg>
<property name="locations">
<list>
<value>classpath:/META-INF/props/db/jdbc.properties</value>
</list>
</property>
</bean>
JBOSS run.bat に追加します
rem JVM memory allocation pool parameters. Modify as appropriate.
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -DAPP_ENCRYPTION_PASSWORD=aiQkX+5+EicZU3x0/ZWeW9ExV+OW/yc+
エラーが発生しています。過去 3 日間、解決策を見つけることができません。助けてください
org.jasypt.exceptions.EncryptionOperationNotPossibleException
2012-05-19 09:49:01,562 ERROR [STDERR] at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:981)
最後に、この問題を修正しました:
まず、暗号化アルゴリズムとパスワードを決定する必要があります。次に、Jasypt に同梱されているコマンドライン ツールを使用して、上記のデータベース パスワードを暗号化します: c:\jasypt 9.0.1\bin input="mypassword" algorithm=PBEWithMD5AndDES password=MY_APPS_PWD
kh1AU2abA4JpwlW1eqixhUzI0PerdI0Z
jdbc プロパティ ENC(kh1AU2abA4JpwlW1eqixhUzI0PerdI0Z) に貼り付けます
上記から取り除かなければならない重要なことは、構成です。プロパティ passwordSysPropertyName は、APP_ENCRYPTION_PASSWORD という名前のシステム プロパティから暗号化パスワードをロードする必要があることを Jasypt に伝えます。ここで、上で説明したように、コンテナーにランタイム プロパティを追加して、このパスワードがシステム プロパティとしてランタイム環境に挿入されるようにします。
run.bat に jboss に追加します
JAVA_OPTS=%JAVA_OPTS% を設定 -DAPP_ENCRYPTION_PASSWORD=MY_APPS_PWD
run.bat ファイル。
乾杯!