gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:54:51 26 4
gpt4 key购买 nike

我试图使用 jasypt 来加密/解密我的 persistence.xml 中的密码,但这效果不太好。 Sooo..我想也许我可以自己做。我的问题是不知道在哪里访问数据库帐户,以便我可以获取它的句柄。这是我的 persistence.xml 中的密码:

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

这可以找到并且应用程序连接到数据库。当我对 hibernate.connection.password 执行 grep 操作时,唯一命中的是 persistence.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" />

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获取示例和详细信息

关于java - 使用 persistence.xml 的 JPA 的数据库连接位于哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37332285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com