0

我正在使用休眠 OGM 与 mongoDB 进行交互。作为业务需求的一部分,我需要启用sslmongodb 和我的 java 应用程序之间的通信。

我在 mongodb 文档中看到使用 mongodb-java-driver,就像在连接字符串中将 ssl 标志设置为 true 一样简单。我怎么能在休眠状态下做到这一点?

===== 更新基于唯一给出的答案 ======

Hibernate OGM 4.2 版使用 mongodb Java 驱动程序 2.13 版,它不包括 MongoClientOptions.Builder 类中的 ssl 属性。我无法升级 hibernateOGM 版本,因为它仍然是 beta 或 alpha。我尝试显式升级 java 驱动程序版本,但随后开始出现异常java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.ogm.datastore.mongodb.options.impl.WriteConcernOption

======== 更新 2 ===============

我查看了 mongodb java 驱动程序文档,发现将socketFactory选项设置为SSLSocketFactory可能的技巧(请参阅https://docs.mongodb.org/v2.6/tutorial/configure-ssl-clients/#java)。但似乎休眠 OGM 4.2 没有选择以下属性来使用 SSLSocketFactory 来创建 mongo 客户端: hibernate.ogm.mongodb.driver.socketFactory=SSLSocketFactory

4

1 回答 1

1

您可以使用以下属性启用 SSL:

hibernate.ogm.mongodb.driver.sslEnabled = true

您还可以设置:

hibernate.ogm.mongodb.driver.sslInvalidHostNameAllowed = true

HIbernate OGM 使用并且您可以使用前缀com.mongodb.MongoClient设置所有属性。com.mongod.MongoClientOptionshibernate.ogm.mongodb.driver

查看文档MongoClient.Builder以获取更多详细信息。

于 2016-04-07T14:35:42.627 回答