конфигурация источника данных в автономном приложении при использовании Hibernate - PullRequest
0 голосов
/ 14 июля 2009

Мне интересно, где мы храним конфигурацию базы данных в автономном приложении. Клиент подключен к базе данных напрямую (я знаю, что это не очень хорошая идея, но мне не разрешено создавать сервер или открывать новый порт для RMI)

Я, конечно, не хочу, чтобы пользователь открывал XML-файл конфигурации Hibernate и получал всю информацию (имя пользователя и пароль базы данных).

Ответы [ 2 ]

1 голос
/ 14 июля 2009

Если вашему клиентскому приложению понадобятся подробности, в конце концов, они всегда будут так или иначе доступны пользователю. Лучшее, что вы можете здесь сделать - это запутать детали. Вы можете просто кодировать их с помощью base64 и сохранять их в файле свойств (не hibernate.properties), а затем загружать их в себя перед получением фабрики сеансов. Для загрузки свойств конфигурации вы можете использовать класс Configuration .

Если вы хотите помешать немного более осведомленному клиенту, вы также можете зашифровать его и сохранить ключ в виде статического поля в своем коде. Это не делает его безопасным, но, возможно, ваши клиенты недостаточно умелы, чтобы декомпилировать исходный код и сами убедиться, как вы расшифровываете эти вещи.

Не забудьте укрепить безопасность на стороне сервера. (убедитесь, что учетная запись БД имеет минимальные привилегии!) Кроме того, запрещение удаленных сервисов, но предоставление прямого доступа к БД не представляется мне очень разумной политикой.

0 голосов
/ 14 июля 2009

Надеюсь, у вас есть сервер каталогов (подойдет любой сервер приложений J2EE), затем вставьте туда источник данных и используйте для его получения Spring * jndi-lookup.

В противном случае, как говорит @wds, это зашифрованные учетные данные или даже запрос, создающий ограниченные учетные записи для каждого пользователя в базе данных.

У меня нет такой проблемы с доступом к БД на стороне клиента - он работал хорошо в течение многих лет, пока не появился SOA - просто убедитесь, что учетные записи пользователей имеют только ограниченные разрешения - выберите доступ только для таблиц или даже выполните весь просмотр. ups через представления (снова с необходимыми разрешениями) и выполнить на необходимых процессах.

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