使用休眠 OGM 为 mongoDB 启用 SSL

Enable SSL for mongoDB using hibernate OGM

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

我在 mongodb 文档中看到使用 mongodb-java-驱动程序,它就像在连接字符串中将 ssl 标志设置为 true 一样简单。我如何在休眠状态下执行此操作?

===== 根据唯一给出的答案进行更新 ======

Hibernate OGM 版本 4.2 使用 mongodb Java 驱动程序版本 2.13,它不包含 MongoClientOptions.Builder class 中的 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) .但似乎 hibernate OGM 4.2 没有选择以下 属性 来使用 SSLSocketFactory 来创建 mongo 客户端: hibernate.ogm.mongodb.driver.socketFactory=SSLSocketFactory

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

hibernate.ogm.mongodb.driver.sslEnabled = true

您还可以设置:

hibernate.ogm.mongodb.driver.sslInvalidHostNameAllowed = true

HIbernate OGM 使用 com.mongodb.MongoClient,您可以使用前缀 hibernate.ogm.mongodb.driver.

设置 com.mongod.MongoClientOptions 中的所有属性

查看 documentation and MongoClient.Builder 了解更多详情。