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