Могу ли я установить пароль для соединения JDBC из пула соединений? (Tomcat 5.5.17) - PullRequest
2 голосов
/ 08 февраля 2010

У меня установлен пул соединений в tomcat server context.xml (соединение, используемое несколькими веб-приложениями, поэтому, кажется, лучшее место для него).

Однако мне не нравится, когда в файле жестко прописаны пароли. Можно ли как-нибудь получить пароль из другого места (безопасное хранилище паролей) и установить его прагматично во время установления соединений в пуле?

Спасибо

Райан

Ответы [ 2 ]

3 голосов
/ 08 февраля 2010

Я полагаю, что вы ищете Custom Resource Factory , вы можете кодировать свою фабрику для создания объекта javax.sql.DataSource или объекта фасада пула соединений на основе DBCP (или такого) и иметь свой собственный код для получения и установки имени пользователя / пароля для подключения.

Обратите внимание, что если вы ищете дополнительную безопасность - прагматичный способ будет использовать безопасность файловой системы для защиты вашего файла context.xml, как добавление дополнительных слоев (таких как ваша пользовательская реализация для фабрики ресурсов), выиграет не сделайте систему более безопасной, так как вам все еще нужен пароль для безопасного хранилища паролей, настроенного где-нибудь - у вас в конечном итоге возникнет проблема с курицей или яйцом.

0 голосов
/ 08 февраля 2010

Возможно, вы захотите внедрить единый вход для своего веб-приложения (например, используя JOSSO ). Обратите внимание, что это может быть значительным расходом для небольшого проекта, но это должно решить вашу проблему. Помимо этого решения, существуют приложения для конкретных поставщиков, такие как Secure External Password Store от Oracle. Другой пример, зависящий от платформы: вы можете настроить PostgreSQL pg_hba.conf. Попробуйте следующие варианты аутентификации:

  • Аутентификация с использованием клиента SSL сертификаты.
  • Аутентификация с использованием Pluggable Модули аутентификации (PAM) сервис, предоставляемый операционной система.
  • Аутентификация с использованием LDAP сервер.
  • ... и многие другие

Редактировать: В одном из проектов мы использовали 3DES для шифрования пароля. И да, ключ был жестко закодирован в приложении :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...