如何从git隐藏JDBC连接凭据?

时间:2016-05-31 09:36:06

标签: git postgresql jdbc properties-file postgresql-9.5

我处理几个小型Java项目(使用Maven + NetBeans)并将它们存储在a public git repository中。

我想在某些项目中使用PostgreSQL JDBC,但不想公开我的数据库的连接凭据。

当然还有其他开发者,他们已经遇到过类似的问题。

请分享您的解决方案。

可能会将数据库名称/用户/密码放入*.properties文件中,然后在git存储库中将其忽略,但是将其保留在工作区中?如何在我的Java项目中加载该文件?

3 个答案:

答案 0 :(得分:1)

你可以将这个文件添加到.gitignore中,但就像你说的那样将它保存在工作副本中,我真的没有在这里看到这个问题。 只是做

echo myprops.properties >> .gitignore

只要加载这些文件,您就可以获得更多信息here。他们建议像这样使用它们:

Properties defaultProps = new Properties();
FileInputStream in = new FileInputStream("defaultProperties");
defaultProps.load(in);
in.close();

然后,您可以使用getProperty(String key)getProperty(String key, String default)

访问代码中的属性

我见过人们做的另一件事是编写一个git pre commit hook并使用sed来替换文件中的凭据,但我对此没有任何经验。

答案 1 :(得分:1)

使用像@dbt这样的属性文件的另一种方法是使用环境变量。

因此,当您启动应用程序时,您可以将环境变量放入命令中。通常,应用程序将优先加载属性文件。

e.g。 它将检查属性文件并加载到所有属性。 如果存在环境变量,它将覆盖先前的值。

其他人将拥有多个属性文件,这些文件将按特定环境变量的值(例如staging,dev,production)加载。 这样,您可以为特定环境保留多个配置。

相关问题: What is the best way to manage configuration data

答案 2 :(得分:1)

另一种方法是使用~/.pgpass来存储凭据。