使用persistence.xml在哪里为JPA定位数据库连接?

时间:2016-05-19 19:19:30

标签: java hibernate jpa encryption

我试图使用jasypt来加密/解密我的persistence.xml中的密码,但这样做不太好。 Sooo ..我想也许我可以自己做。我的问题是不知道访问数据库帐户的位置,所以我可以得到它的句柄。这是我的persistence.xml中的密码:

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

这可以找到并且应用程序连接到数据库。当我执行hibernate.connection.password的grep时,唯一的命中是persistence.xml。

有谁知道代码中的哪个地方我可以手动解密和加密密码?

谢谢!

UPDATE2 - 搞定了! 我尝试使用JNDI路由。以下是让它发挥作用的设置:

的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(在jboss deploy目录中)

<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 个答案:

答案 0 :(得分:1)

通常,您不应在random 123456 random@mail.com 中设置密码,而是通过persistence.xml进行设置,并在容器配置中进行设置。这样,密码不会存储在您的版本控制中,只能在容器中访问/更改(tomcat,jboss,websphere&amp; etc等)。请参阅Tomcat JNDI How-To了解样本&amp;细节

相关问题