2

暗号化に jasypt-1.9.0 を使用しています。

Jdbc.properties

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:ORCL
jdbc.username=testuser
jdbc.password=ENC(lKmVnTVL3zSJXrZpwFmhd6crSHLzYihH)
hibernate.dialect=org.hibernate.dialect.OracleDialect
jpa.databasePlatform=toplink.hibernate.EssentialsHSQLPlatformWithNative
jpa.database=ORCL
C:\jasypt-1.9.0\bin>入力の暗号化=testuser パスワード=testuser

-  - 環境 -  -  -  -  -  -  -  - -
ランタイム: Sun Microsystems Inc. Java HotSpot(TM) Client VM 1.5.0_17-b04
----議論----------------------
入力: テストユーザー
パスワード: テストユーザー
-  - 出力 -  -  -  -  -  -  -  -  -  -  - 

lKmVnTVL3zSJXrZpwFmhd6crSHLzYihH

あなたのサイトの1つから参照を得ました。複数のコンテキスト ファイルを使用しています。設定しました

<bean
class="org.jasypt.spring.properties.EncryptablePropertyPlaceholderConfi
gurer">
<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="passwordEnvName" 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>

<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"
value="${jdbc.driverClassName}" ></property>

<property name="url"
value="${jdbc.url}" ></property>
<property name="username"
value="${jdbc.username}" ></property>
<property name="password"
value="${jdbc.password}"></property>
<property name="initialSize" value="10"> </property>
<property name="maxActive"
value="30"> </property>
<property name="maxIdle"
value="10"> </property>
<property name="maxWait"
value="5000"> </
property>
<property name="removeAbandoned"
value="true"> </
property>
<property name="logAbandoned"
value="true"> </
property>

</bean>

アプリケーションにログインすると、エラーが発生します::

org.jasypt.exceptions.EncryptionInitializationException: パスワードベースの暗号化にパスワードが設定されていません

4

2 に答える 2

6

「APP_ENCRYPTION_PASSWORD」プロパティが環境変数として適切に設定されていないようです。このリンクを参照して、環境変数として適切に設定されているかどうかを確認してください。残りの構成に問題があるかどうかを確認するには、YOUR_PLAIN_TEXT_PASSWORD_HERE を平文のパスワードに変更<property name="passwordEnvName" value="APP_ENCRYPTION_PASSWORD" />して置き換え、残りの構成が機能しているかどうかをテストします。<property name="password" value="YOUR_PLAIN_TEXT_PASSWORD_HERE" />

Windows XP で APP_ENCRYPTION_PASSWORD を環境変数として設定するには、このリンクを参照してください。

または、プログラムを実行するときにパスワードを vm 引数として渡すこともできます。スタンドアロン プログラムの場合は、 のように渡しますjava ClassWithMain -DAPP_ENCRYPTION_PASSWORD=your_password。Web アプリケーションの場合は、サーバーの起動時に同じ引数を渡す必要があります。tomcat でこれを行う方法については、SO に関するこの質問を参照してください。次に、春の構成で、に置き換え<property name="passwordEnvName" value="APP_ENCRYPTION_PASSWORD" />ます<property name="passwordSysPropertyName" value="APP_ENCRYPTION_PASSWORD" />

于 2012-05-15T12:19:39.657 に答える
-1

環境変数を設定したら。日食を再開してください。この問題に直面しない場合があります。問題が解決しない場合は、以下のコードで環境変数を見つけてください。

Map<String, String> env = System.getenv();
            for (String envName : env.keySet()) {
                System.out.format("%s=%s%n", envName,
                                  en`enter code here`v.get(envName));
            } 
于 2015-12-21T14:48:52.450 に答える