我目前有一个 server.xml 配置,其中包含以下内容
<Resource auth="Container"
description="DB Connection"
driverClass="oracle.jdbc.driver.OracleDriver"
maxPoolSize="40"
minPoolSize="2"
aquireIncrement="1"
name="jdbc/FOOBAR"
user="foo"
password="bar"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
jdbcUrl="path:to:db:port:db" />
出于显而易见的原因,我要求不再允许用户名/密码在 server.xml 文件中以明文形式出现。
我在线阅读了一些内容,并遇到了How to Secure Tomcat Database Passwords for Java Encrypt Tomcat Server.xml和许多其他页面中 JNDI 的用户名和密码;但是,我有点卡住了。
我首先查看了扩展 BasicDataSourceFactory - 但由于我使用 c3p0 CombinedPooledDataSource 似乎无法发生。然后我试图通过实现 PooledDataSource、Serializable 和 Referenceable 来创建一个 c3p0 数据源包装器,但这也不起作用。
我读到我可以通过使 auth="Container" => auth="Application" 将身份验证移动到服务器端。但是,我不确定如何使用 Hibernate 来实现其余部分。
任何帮助都会很棒。