[英]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.