Я использую hibernate OGM для взаимодействия с mongoDB. В рамках бизнес-требований мне нужно включить ssl
для связи между mongodb и моим java-приложением.Включить SSL для mongoDB с использованием hibernate OGM
Я вижу в документации mongodb, что с использованием mongodb-java-драйвера, так же просто, как привязать флаг ssl к true в строке соединения. Как я могу сделать это в спящем режиме?
===== UPDATE на основе только данного ответа ======
Hibernate OGM версия 4.2 использует MongoDB Java драйвер версии 2.13, которая не включает в себя свойство Ssl в MongoClientOptions.Builder класс. Я не могу обновить версию hibernateOGM, потому что она по-прежнему либо бета, либо альфа. Я попытался явно обновить версию драйвера Java, но затем я начал получать за исключением java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.ogm.datastore.mongodb.options.impl.WriteConcernOption
======== Update 2 ==============
I заглянул в документацию драйвера java mongodb и обнаружил, что настройка socketFactory
может быть SSLSocketFactory
может быть хитростью (см.). Но кажется, что зимуют ОГМ 4,2 не подбирая следующее свойство использовать SSLSocketFactory для создания Монго клиента: hibernate.ogm.mongodb.driver.socketFactory=SSLSocketFactory
Я обновил вопрос в свете вашего предложения, но теперь оказался в ловушке другой проблемы. Есть ли у вас другая возможность указать? –
В настоящее время для этого есть открытая проблема: https://hibernate.atlassian.net/browse/OGM-975 – Davide
Одним из способов может быть расширение метода MongoDBDatastoreProvider: защита MongoClient createMongoClient (конфигурация MongoDBConfiguration) и использование параметра 'hibernate .ogm.datastore.provider'. – Davide