2016-04-07 1 views
0

J'utilise Hibernate OGM pour interagir avec mongoDB. Dans le cadre des besoins de l'entreprise, je dois activer ssl pour la communication entre mongodb et mon application Java.Activer SSL pour mongoDB en utilisant Hibernate OGM

Je vois dans la documentation de mongodb qu'en utilisant le mongodb-java-driver, il est aussi simple que de mettre l'indicateur ssl à true dans la chaîne de connexion. Comment puis-je faire cela en hibernation?

MISE À JOUR ===== basé sur la seule donnée réponse ======

Hibernate Version 4.2 Usages du message d'accueil de la version du pilote de Java 2.13 qui ne comprend pas la propriété ssl dans MongoClientOptions.Builder classe. Je ne peux pas mettre à jour la version d'hibernateOGM parce que c'est toujours beta ou alpha. J'ai essayé de mettre à niveau explicitement la version du pilote java mais j'ai commencé à faire exception java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.ogm.datastore.mongodb.options.impl.WriteConcernOption

Mise à jour ======== 2 ==============

I regardé dans la documentation du pilote mongodb java et a constaté que la mise socketFactory option à SSLSocketFactory pourrait à l'astuce (voir https://docs.mongodb.org/v2.6/tutorial/configure-ssl-clients/#java). Mais semble mise en veille prolongée OGM 4.2 ne ramasse pas la propriété suivante pour utiliser le SSLSocketFactory pour la création de client mongo: hibernate.ogm.mongodb.driver.socketFactory=SSLSocketFactory

Répondre

1

Vous pouvez activer SSL en utilisant la propriété suivante:

hibernate.ogm.mongodb.driver.sslEnabled = true 

vous pouvez également définir:

hibernate.ogm.mongodb.driver.sslInvalidHostNameAllowed = true 

HIBERNATE utilise le com.mongodb.MongoClient message d'accueil et vous pouvez définir toutes les propriétés en com.mongod.MongoClientOptions en utilisant le préfixe hibernate.ogm.mongodb.driver.

Vérifiez les documentation et MongoClient.Builder pour plus de détails.

+0

J'ai mis à jour la question à la lumière de votre suggestion, mais maintenant pris au piège dans un autre problème. Avez-vous une autre option à pointer? –

+0

Actuellement, il existe un problème ouvert pour cela: https://hibernate.atlassian.net/browse/OGM-975 – Davide

+0

Une solution de contournement pourrait être d'étendre la méthode MongoDBDatastoreProvider: protected MongoClient createMongoClient (MongoDBConfiguration config) et utilisez le paramètre 'hibernate .ogm.datastore.provider'. – Davide