有没有办法在运行时请求数据库密码,而不是将它(加密或不加密)放在hibernate.cfg.xml文件中?
答案 0 :(得分:3)
几乎Hibernate中的每个配置选项都在配置对象上有相应的方法。实际上,配置实际上只是将XML绑定到正在设置的对象的一种方法。有关详细信息,请参阅此文章:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html
那就是说,你有责任在启动时收集密码。这可能是问题中最困难的部分。收集密码后,将其发送到相应的媒体资源。
答案 1 :(得分:2)
如果您使用的是Java EE应用服务器,通常最好的方法是使用JNDI查找来获取数据库连接,而不是使用驱动程序管理器。这样设置JNDI连接池的人是唯一必须知道密码的人,并且通常在管理控制台中加密,因此它是安全的。
答案 2 :(得分:2)
我认为如果您正在使用Hibernate配置的编程实例化,您可以从不包含密码的配置文件初始化它,在您要实例化的配置对象上设置数据库连接的附加属性,然后调用buildConfguration()。