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önnenIn 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?
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% 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:
Fügen Sie einfach spring.data.mongodb.uri
zu Ihrem application.yml
hinzu und Sie erhalten die automatisch konfigurierten MongoDbFactory
und MongoTemplate
.
Es gibt zwei Möglichkeiten, wie Mongodb 3 mit Spring-Daten arbeiten kann. Beide beinhalten das Herunterstufen des Authentifizierungsschemas:
Beginnen Sie mit mongodb 2.x und aktualisieren Sie auf 3.0; funktioniert als Authentifizierungssystem bleibt das gleiche
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.
Tags und Links java spring authentication mongodb