2016-04-07 4 views
0

Ich verwende Hibernate OGM, um mit MongoDB zu interagieren. Als Teil der Geschäftsanforderung muss ich ssl für die Kommunikation zwischen mongodb und meiner Java-Anwendung aktivieren.Aktivieren Sie SSL für MongoDB mit Hibernate OGM

Ich sehe in mongodb Dokumentation, dass mit dem mongodb-java-Treiber, ist es so einfach wie die ssl-Flag zu true in der Verbindungszeichenfolge turing. Wie kann ich dies im Ruhezustand tun?

===== UPDATE auf der Grundlage der einzigen Antwort ====== gegeben

Hibernate OGM Version 4.2 Anwendungen mongodb Java-Treiber Version 2.13, die nicht die ssl Eigenschaft in MongoClientOptions.Builder enthält Klasse. Ich kann die HibernateOGM-Version nicht aktualisieren, da sie immer noch Beta oder Alpha ist. Ich habe versucht, explizit die Java-Treiberversion zu aktualisieren, aber dann begann ich Ausnahme java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.ogm.datastore.mongodb.options.impl.WriteConcernOption

======== Update 2 ==============

ich immer schaute in die mongodb Java Treiber Dokumentation und fand, dass die Einstellung socketFactory Option zu SSLSocketFactory könnte der Trick (siehe https://docs.mongodb.org/v2.6/tutorial/configure-ssl-clients/#java). Aber scheint, wie Hibernate OGM 4.2 ist nicht die folgende Eigenschaft Kommissionierung bis zu dem SSLSocketFactory verwendet für Mongo-Client zu erstellen: hibernate.ogm.mongodb.driver.socketFactory=SSLSocketFactory

Antwort

1

Sie können mithilfe von SSL die folgenden Eigenschaft aktivieren:

hibernate.ogm.mongodb.driver.sslEnabled = true 

Sie auch festlegen können:

hibernate.ogm.mongodb.driver.sslInvalidHostNameAllowed = true 

Hibernate OGM verwendet die com.mongodb.MongoClient und Sie können alle Eigenschaften in com.mongod.MongoClientOptions mit dem Präfix hibernate.ogm.mongodb.driver gesetzt.

Überprüfen Sie die documentation und MongoClient.Builder für weitere Details.

+0

Ich habe die Frage im Lichte Ihrer Anregung aktualisiert, aber jetzt in einem anderen Problem gefangen. Haben Sie eine andere Option, auf die Sie zeigen können? –

+0

Zurzeit gibt es ein offenes Problem dafür: https://hibernate.atlassian.net/browse/OGM-975 – Davide

+0

Eine mögliche Lösung wäre, die MongoDBDatastoreProvider-Methode zu erweitern: protected MongoClient createMongoClient (MongoDBConfiguration config) und den Parameter 'hibernate 'verwenden .ogm.datastore.provider'. – Davide

Verwandte Themen