繁体   English   中英

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

[英]Where is DB connection located for JPA using persistence.xml?

我试图使用jasypt来加密/解密persistence.xml中的密码,但这不能很好地工作。 如此..我想也许我可以自己做。 我的问题是不知道在哪里访问数据库帐户,因此我可以处理它。 这是我的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部署目录中)

<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>

通常,您不应在persistence.xml设置密码,而应通过JNDI进行设置并在容器配置中进行设置。 这样,密码就不会存储在版本控制中,并且只能在容器(tomcat,jboss,websphere等)中访问/更改。 有关示例和详细信息,请参见Tomcat JNDI How-To

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM