有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用持久性的JPA的数据库连接位于何处。xml?

我试图在我的持久性中使用jasypt加密/解密密码。xml,但这不是很好。苏欧。。我想也许我可以自己做。我的问题是不知道db帐户在哪里被访问,所以我可以得到它的句柄。这是我持久化中的密码。xml:

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

这可以工作,并且应用程序可以连接到数据库。当我冬眠的时候。联系密码唯一的命中是持久性。xml

有人知道我在代码中的什么地方可以得到手动解密和加密密码的句柄吗

谢谢

更新2-让它正常工作 我尝试使用JNDI路径。以下是使其工作的设置:

坚持。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" />

甲骨文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>

共 (1) 个答案

  1. # 1 楼答案

    通常,您不应该在persistence.xml中设置密码,而应该在JNDI上设置密码,并在容器配置中设置密码。这样,密码就不会存储在您的版本控制中,只能在容器(tomcat、jboss、websphere等)中访问/更改。请参见Tomcat JNDI How-To了解示例&;细节