我可以从连接池设置JDBC连接的密码吗? (雄猫5.5.17)

时间:2010-02-07 22:25:21

标签: java tomcat connection-pooling

我在tomcat服务器context.xml中设置了一个连接池(几个webapps使用的连接似乎是最好的位置)。

但是,我不喜欢在文件中使用硬编码的密码。有没有办法让我从其他地方(安全密码存储区)检索密码,并在建立池化连接时以实际方式设置密码?

谢谢

瑞安

2 个答案:

答案 0 :(得分:3)

我相信您正在寻找Custom Resource Factory,您可以编写工厂代码来创建javax.sql.DataSource对象或基于DBCP(或类似)的连接池外观对象,并获取用于获取和设置的自定义代码连接的用户名/密码。

请注意,如果您正在寻找额外的安全性 - 务实的方法是使用文件系统安全性来保护您的context.xml文件,因为添加了额外的层(例如资源工厂的自定义实现),赢了不要让系统更安全,因为你仍然需要在某处配置安全密码存储的密码 - 你最终会得到鸡肉或鸡蛋的问题。

答案 1 :(得分:0)

您可能希望为您的网络应用程序实施单点登录(例如,使用JOSSO)。请注意,对于小型项目来说,这可能是一个重大的开销,但这应该可以解决您的问题。除此解决方案外,还有供应商特定的应用程序,如Oracle的Secure External Password Store。另一个依赖于平台的示例:您可以配置PostgreSQL pg_hba.conf。请尝试以下身份验证选项:

  • 使用SSL客户端进行身份验证 证书。
  • 使用Pluggable进行身份验证 验证模块(PAM) 经营提供的服务 系统。
  • 使用LDAP进行身份验证 服务器
  • ......和其他许多人

编辑:在其中一个项目中,我们使用3DES加密密码。是的,密钥在应用程序中被硬编码:)