2016-05-19 6 views
0

私はpersistence.xmlのパスワードを暗号化/復号化するのにjasyptを使用しようとしていましたが、あまりうまく動作しません。 Sooo ..私はおそらく自分でそれをやることができると思った。私の問題は、dbアカウントがどこにアクセスされているかを知ることではないので、ハンドルを取得できます。パスワードは私のpersistence.xmlにあります:persistence.xmlを使用してJPA用に配置されているDB接続はどこにありますか?

<property name="hibernate.connection.password" value="mydbpassword" /> 

これは検索し、アプリケーションはデータベースに接続します。 hibernate.connection.passwordのgrepを実行すると、唯一のヒットはpersistence.xmlです。

コードをどこで知っているのですが、これを手動で復号化して暗号化したパスワードにすることができますか?

ありがとうございました!

UPDATE2 - 入手しました! JNDIルートを使用しようとしました。ここではそれが動作するように取得するための設定は次のとおりです(のJBoss deployディレクトリにある)

persistence.xmlの

<persistence-unit name="MyApp" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <jta-data-source>java:/myDB</jta-data-source> 
     <properties> 
      <property name="hibernate.connection.datasource" value="java:/myDB" /> 

のoracle-ds.xmlの

<datasources> 
    <local-tx-datasource> 
     <jndi-name>/myDB</jndi-name> 
     <use-java-context>true</use-java-context> 
     <connection-url>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=foo.com)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SID=myDB))) 
     </connection-url> 
     <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> 
     <user-name>user1</user-name> 
     <password>userpass</password> 

答えて

1

通常、あなたがパスワードを設定しないでくださいあなたのpersistence.xmlではなく、JNDIを超えて実行し、コンテナの設定でそれを設定します。そうすればパスワードはあなたのバージョンコントロールには保存されず、コンテナ(tomcat、jboss、websphere &など)でしかアクセス/変更できません。サンプルについてはTomcat JNDI How-Toを参照&詳細

+0

これは機能しています! oracle-ds.xmlでuse-java-context = trueを追加し、persistence.xmlにhibernate.connection.datasourceを設定します。多分1つだけが必要だったかもしれません...しかし今は動作します。 – Blake

+0

偉大な、助けてうれしい! – Zilvinas

関連する問題