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