java - Spring 和 Hibernate - 在 hibernate.cfg.xml 中无需硬编码密码即可使用

标签 java spring hibernate spring-boot spring-data-jpa

我根据此处提供的教程使用 Hibernate 开发了一个简单的 spring jar Tutorials Point

它正在按预期工作,没有出现任何问题。但我看到密码被硬编码在文件中,这在生产中是 Not Acceptable 。有没有办法调用下面的语句中的方法,该方法可以动态地将值分配给键。您能否指导如何实现生产就绪的 hibernate 配置文件。谢谢!!!

      <property name = "hibernate.connection.password">
     root123
  </property>

是否可以做这样的事情

      <property name = "hibernate.connection.password">
     com.cfc.test.DBClass.getPassword(userName);
  </property>

最佳答案

密码最终将以明文形式存储在某个地方。这已得到证明,因为您正在尝试找到一种方法将某些属性从另一个文件传递到此文件。

解决方案是不将此文件提交到版本控制中。相反,让每个开发人员或机器自行创建文件。这样,私有(private)凭证就永远不会被共享。如果需要,您可以维护一个包含整个 XML 文件(不包括密码)的模板,并建议用户更新该文件。

如果您确实想将值存储在其他文件中,然后在创建服务注册表之前更新 XML 文件,那么您可以简单地读取属性文件,更新 xml 文件,然后构建注册表。

关于java - Spring 和 Hibernate - 在 hibernate.cfg.xml 中无需硬编码密码即可使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61781977/

相关文章:

java - JAX-RS 表单验证 - 突出显示输入文本字段并显示验证消息

java - 为什么我的hibernate4 session.save()只能调用一次,不能连续调用

mysql - Hibernate、jpa 和 mysql

sql - 使用 Hibernate 进行不区分大小写的搜索

java - ColdFusion 实体加载过滤条件生成 java 错误

java - 将数据存储在 servlet 的 DTO 中...?

java - JPA 检查查询是否为空

java - 读取实体时更改 DAO/Repository 中的特定值

java - Jackon 自定义解串器从未调用过

java - 为什么 Spring SAML 阻止 Spring OAuth2 工作?