我试图使用jasypt来加密/解密我的persistence.xml中的密码,但这样做不太好。 Sooo ..我想也许我可以自己做。我的问题是不知道访问数据库帐户的位置,所以我可以得到它的句柄。这是我的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 deploy目录中)
<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>
答案 0 :(得分:1)
通常,您不应在random
123456
random@mail.com
中设置密码,而是通过persistence.xml
进行设置,并在容器配置中进行设置。这样,密码不会存储在您的版本控制中,只能在容器中访问/更改(tomcat,jboss,websphere&amp; etc等)。请参阅Tomcat JNDI How-To了解样本&amp;细节