2016-05-31 3 views
1

Я работаю над несколькими небольшими проектами Java (используя Maven + NetBeans) и сохраняю их в a public git repository.Как скрыть учетные данные подключения JDBC от git?

Я бы хотел использовать PostgreSQL JDBC в некоторых проектах, но не хочу, чтобы учетные данные подключения моей базы данных были общедоступны.

Несомненно, есть и другие разработчики, у которых уже возникла аналогичная проблема.

Пожалуйста, поделитесь своими решениями.

Возможно, возможно поместить имя базы данных/пользователя/пароль в файл *.properties, а затем проигнорировать его в репозитории git, но сохранить его в рабочей области? Как загрузить этот файл в моих проектах Java?

+1

Обычно я использую подход к файлу свойств, как вы описали. Там много ресурсов, описывающих загрузку свойств из файла. –

ответ

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)

Другая вещь, которую я видел, что люди делают пишет мерзавец предварительно совершить hook и используя sed заменить учетные данные в файлах, но у меня нет опыта с этим.

1

Другим способом, чем использование файла свойств, такого как @dbt, является использование переменной среды.

Поэтому, когда вы запускаете приложение, вы используете перенос переменной среды в команду. Обычно приложение будет иметь приоритет при загрузке файла свойства.

например. Он проверит файл свойств и загрузит все свойства. Если переменная среды существует, она переопределит предыдущее значение.

Другие люди будут иметь несколько файлов свойств, которые будут загружены значением определенной переменной среды (например, staging, dev, production). Таким образом, вы можете сохранить несколько конфигураций для определенных сред.

Похожие вопросы: What is the best way to manage configuration data

1

Другой альтернативой является использование ~/.pgpass для хранения учетных данных.

+0

Будет ли '~/.pgpass' действительно работать, когда я запускаю свою программу Java в командной строке? Например: [start_emb_jetty_mac.sh] (https://github.com/afarber/jetty-newbie/blob/master/EmbWebsocketListener/start_emb_jetty_mac.sh). И что [параметры подключения JDBC] (https://jdbc.postgresql.org/documentation/head/connect.html) использовать тогда? –

+0

Я этого не пробовал. Я знаю, что, когда я запускаю psql из оболочки, он работает. –

+0

Я искал и [драйвер PostgreSQL JDBC] (https://github.com/pgjdbc/pgjdbc) не читает файл '~/.pgpass' –

 Смежные вопросы

  • Нет связанных вопросов^_^