La connexion à MongoDB 3.0 avec Java Spring
Je vais avoir des problèmes dans l'utilisation de Printemps pour accéder à MongoDB avec des informations d'identification.
Alors que sans les informations d'identification, il fonctionne comme un charme, à l'aide d'eux ne parvient pas dire
Failed to authenticate to database [yourdatabase], username = [yourusername], password = [x******z]
Il doit être à cause de la nouvelle auth par défaut que vous pouvez lire dans http://docs.mongodb.org/manual/core/authentication/
Changé dans la version 3.0: SCRAM-SHA-1 est le mécanisme par défaut pour MongoDB versions commençant avec la version 3.0 de la série.
Question: Quelqu'un a trouvé un moyen d'utiliser le Printemps avec des informations d'identification ? La version de spring-data-mongodb
avez-vous utilisé pour faire le truc ?
pourtant, il y a une mongo-3 branche canonique dépôt git
bien 1.7.0.RC1 dire quelque chose à ce sujet, mais je ne pouvais toujours pas faire fonctionner ! docs.printemps.io/printemps-données/données mongo/docs/1.7.0.RC1/de référence/...
pourriez-vous s'il vous plaît poster le lien vers le repo git ? Il pourrait être utile de prendre un coup d'oeil
github.com/spring-projects/spring-data-mongodb/tree/mongo-3
OriginalL'auteur Luca Stucchi | 2015-03-10
Vous devez vous connecter pour publier un commentaire.
Après beaucoup de tentatives et de la lecture, j'ai trouvé une façon de faire de MongoDB 3.0 travail avec authentification.
C'était une nouvelle installation de MongoDB 3.0, pas de mise à niveau concernés.
J'ai utilisé ces dépendances maven:
avoir en tant que parent
Ensuite dans mon fichier de Configuration, j'ai eu
Et, enfin, partout où vous avez accès à la MongoTemplate bean vous serez en mesure de faire
<properties> <spring-data-releasetrain.version>Fowler-RELEASE</spring-data-releasetrain.version> </properties>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
Hategan, dites-vous que vous utilisez printemps-amorçage-starter-données mongodb et pas de printemps de données mongodb? Si oui...quels sont les autres changements avez-vous pu faire pour le faire fonctionner?
oui, je suis en utilisant le printemps-amorçage-starter-données mongodb qui semble utiliser le printemps de données mongodb en interne. Je suis sais que j'ai été en utilisant org.springframework.démarrage de gestion de la dépendance à garder les versions synchronisées:
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.2.4.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Autre que rien de spécial autant que je sacheTout ce que je besoin en plus du printemps-amorçage-starter-parent dépendance: <dépendance> <groupId > org.springframework.boot</groupId> <artifactId>printemps-amorçage-starter-données mongodb</artifactId> </dépendance>
OriginalL'auteur Luca Stucchi
spring.data.mongodb.host
etspring.data.mongodb.port
ne sont pas pris en charge si vous êtes à l'aide de la Mongo 3.0 pilote Java. Dans de tels cas,spring.data.mongodb.uri
doivent être utilisés pour fournir l'ensemble de la configuration, comme ceci:Il suffit d'ajouter le
spring.data.mongodb.uri
à votreapplication.yml
et vous obtiendrez l'auto configuréMongoDbFactory
etMongoTemplate
.OriginalL'auteur Ali Dehghani
à l'aide de cette versions dans votre pom:
Et cette configuration au printemps:
Avec cette configuration, vous n'avez qu'à injecter le MongoTemplate:
Cela devrait fonctionner correctement =)
Merci beaucoup :))
OriginalL'auteur manelseo
Ici est la version xml de connecter MongoDB 3.0.7 avec le Printemps (les paramètres sont transmis à partir d'un fichier de propriété):
Puis en Java, vous obtenez mongoTemplate comme ceci:
OriginalL'auteur XLi
Il y en a deux possibilités pour faire de Mongodb 3 travailler avec les données du Printemps. Les deux impliquent le déclassement d'un schéma d'authentification:
commencer avec mongodb 2.x et de mise à niveau à la version 3.0, il travaille en tant que système d'authentification reste le même
si vous avez une nouvelle installation de mongo 3.0, vous pouvez revenir
le schéma d'authentification avant de créer les utilisateurs.
De déclasser le mécanisme d'authentification:
Ou vous pouvez même avoir mélangé les utilisateurs, certains créés avec la version 5 (celui de mongo 3) et certains avec la version 3. Sauf que vous serez en mesure de se connecter (à partir du Printemps de données) qu'avec les utilisateurs créés à l'aide de la version 3.
Vous pouvez essayer 3.0 + mongo 3 pilotes bêta: en général, cette combinaison fonctionne avec des "legacy code", mais je n'ai pas réussi à le faire fonctionner avec le Printemps de Données.
Grand, bien IMO ce que vous avez fait est ignorant efficacement Printemps de Données. C'était également ma conclusion - si j'ai ajouté un code similaire j'ai pu accéder à mongo 3, mais le normal Printemps généré des dépôts n'a pas de travail. Ou voulez-vous dire que le Printemps de Données sélectionne maintenant vos classes à la place et fonctionne correctement?
C'est exactement ce que j'ai besoin de savoir maintenant, l'objectif principal était de pouvoir se connecter à mongo, une mission bonus serait à l'aide de Données du Printemps.
OriginalL'auteur Normunds Kalnberzins