有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用hibernate OGM为mongoDB启用java SSL

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

我在mongodb文档中看到,使用mongodb java驱动程序,只需在连接字符串中将ssl标志转换为true即可。在hibernate中如何执行此操作

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

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

========================================

我查看了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


共 (1) 个答案

  1. # 1 楼答案

    可以使用以下属性启用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中的所有属性

    查看documentationMongoClient.Builder以了解更多详细信息