【问题标题】:Hibernate database password at runtime运行时休眠数据库密码
【发布时间】:2010-12-16 13:28:03
【问题描述】:

有没有办法在运行时询问数据库密码,而不是将其(加密或不加密)放在 hibernate.cfg.xml 文件中?

【问题讨论】:

  • 哎哟!这是一个有趣的问题。我可以问一下您使用 Hibernate 的上下文吗?这是一个独立的应用程序还是一个网络应用程序?另外,如果它是一个网络应用程序,你使用的是 Spring 吗?
  • 此时它是一个独立的应用程序,但我想要数据库端的保护,而不是应用程序,因为数据库比我的应用程序有更好的保护。此外,我为什么要尝试构建数据库端已经存在的加密?我不介意错误的人拥有我的应用程序,我只介意错误的人访问我的数据库。

标签: java hibernate passwords runtime


【解决方案1】:

Hibernate 中的几乎每个配置选项都对正在配置的对象有相应的方法。实际上,配置实际上只是将 XML 绑定到正在设置的对象的一种方式。更多信息请看这篇文章:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html

也就是说,您有责任在启动时收集密码。这可能是问题中最困难的部分。收集密码后,请将其发送至相应的酒店。

【讨论】:

    【解决方案2】:

    如果您使用的是 Java EE 应用服务器,通常最好的方法是使用 JNDI 查找来获取数据库连接,而不是使用驱动程序管理器。这样设置 JNDI 连接池的人是唯一需要知道密码的人,而且密码通常在管理控制台中加密,因此很安全。

    【讨论】:

      【解决方案3】:

      我认为如果您正在使用 Hibernate 配置的编程实例化,您可以从不包含密码的配置文件中对其进行初始化,在您正在实例化的配置对象上设置数据库连接的附加属性,然后调用buildConfiguration()。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-23
        • 1970-01-01
        相关资源
        最近更新 更多