Verbindung zu MongoDB 3.0 mit Java Spring

7

Ich habe Probleme mit Spring, um mit Anmeldeinformationen auf MongoDB zuzugreifen. Während ohne Anmeldeinformationen es wie ein Charme funktioniert, schlägt die Verwendung von ihnen fehl,

zu sagen %Vor%

Es muss aufgrund des neuen Auth-Standards geschehen, über den Sie in Ссылка

lesen können
  

In Version 3.0 geändert: SCRAM-SHA-1 ist der Standardmechanismus für MongoDB-Versionen, die mit der 3.0-Reihe beginnen.

Frage: Hat jemand einen Weg gefunden, Spring mit Anmeldedaten zu verwenden? Welche Version von spring-data-mongodb hast du benutzt, um den Trick zu machen?

    
Luca Stucchi 10.03.2015, 08:11
quelle

5 Antworten

15

Nach vielen Versuchen und Lesen habe ich einen Weg gefunden, MongoDB 3.0 mit Authentifizierung arbeiten zu lassen.

Dies war eine Neuinstallation von MongoDB 3.0, keine Aktualisierung.

Ich habe diese maven-Abhängigkeiten verwendet:

%Vor%

als übergeordnetes

%Vor%

Dann in meiner Konfigurationsdatei hatte ich

%Vor%

Und schließlich, wo immer Sie Zugriff auf die MongoTemplate-Bean haben, können Sie dies tun

%Vor%     
Luca Stucchi 11.03.2015, 08:12
quelle
4

spring.data.mongodb.host und spring.data.mongodb.port werden nicht unterstützt, wenn Sie den Mongo 3.0 Java-Treiber verwenden. In solchen Fällen sollte spring.data.mongodb.uri verwendet werden, um die gesamte Konfiguration wie folgt bereitzustellen:

%Vor%

Fügen Sie einfach spring.data.mongodb.uri zu Ihrem application.yml hinzu und Sie erhalten die automatisch konfigurierten MongoDbFactory und MongoTemplate .

    
Ali Dehghani 19.12.2015 17:57
quelle
3

Verwenden Sie diese Versionen in Ihrem Pom:

%Vor%

Und diese Konfiguration im Frühjahr:

%Vor%

Bei dieser Konfiguration müssen Sie nur die MongoTemplate injizieren:

%Vor%

Das sollte gut funktionieren =)

    
manelseo 09.02.2016 13:47
quelle
1

Hier ist die xml-Version, um MongoDB 3.0.7 mit Spring zu verbinden (Parameter werden von einer Eigenschaftendatei übergeben):

%Vor%

Dann in Java, erhalten Sie mongoTemplate wie folgt:

%Vor%     
XLi 31.01.2016 21:03
quelle
0

Es gibt zwei Möglichkeiten, wie Mongodb 3 mit Spring-Daten arbeiten kann. Beide beinhalten das Herunterstufen des Authentifizierungsschemas:

  1. Beginnen Sie mit mongodb 2.x und aktualisieren Sie auf 3.0; funktioniert als Authentifizierungssystem bleibt das gleiche

  2. Wenn Sie eine Neuinstallation von mongo 3.0 haben, können Sie ein Downgrade durchführen das Authentifizierungsschema vor dem Erstellen der Benutzer.

Um den Authentifizierungsmechanismus herunterzustufen:

%Vor%

Oder Sie können sogar gemischte Benutzer haben, einige mit Version 5 (die von mongo 3) und einige mit Version 3. Außer Sie können sich (von Spring-Daten) nur mit Benutzern verbinden, die mit Version 3 erstellt wurden.

Sie könnten 3.0 + mongo 3 beta-Treiber ausprobieren: Im Allgemeinen funktioniert diese Kombination mit "Legacy-Code", aber ich habe es nicht geschafft, dass es mit Spring Data funktioniert.

    
Normunds Kalnberzins 10.03.2015 15:03
quelle