1 mit - Erstellt Benutzer in MongoBenutzer kann nicht in MongoDB authentifizieren 3.0.2 Java-Verbindung
Shell> use admin
switched to db admin
> db.createUser({ user:"tiger", pwd:"secret", roles: [ { role:"readWrite", db:"zoo" } ] })
Successfully added user: {
"user" : "tiger",
"roles" : [
{
"role" : "readWrite",
"db" : "zoo"
}
]
}
2 - Verbunden mit Datenbank von Java
List<ServerAddress> seeds = new ArrayList<ServerAddress>();
seeds.add(new ServerAddress("remoteserver"));
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(
MongoCredential.createMongoCRCredential(
"tiger",
"admin",
"secret".toCharArray()
)
);
MongoClient mongoClient = new MongoClient(seeds); //, credentials);
MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(mongoClient, "zoo");
3 - Legen Sie eine Reihe
mongoTemplate.insert(animal, "animal");
4 - Erhalten Sie diesen Fehler (dieser Code funktioniert, wenn ich keine Authentifizierung verwenden)
2015-05-13 23:11:36.166 ERROR 67846 --- [nio-8443-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.data.mongodb.UncategorizedMongoDbException: { "serverUsed" : "remoteserver:27017" , "ok" : 0.0 , "errmsg" : "auth failed" , "code" : 18}; nested exception is com.mongodb.CommandFailureException: { "serverUsed" : "remoteserver:27017" , "ok" : 0.0 , "errmsg" : "auth failed" , "code" : 18}] with root cause
com.mongodb.CommandFailureException: { "serverUsed" : "remoteserver:27017" , "ok" : 0.0 , "errmsg" : "auth failed" , "code" : 18}
at com.mongodb.CommandResult.getException(CommandResult.java:76)
at com.mongodb.CommandResult.throwOnError(CommandResult.java:131)
at com.mongodb.DBPort$NativeAuthenticator.authenticate(DBPort.java:652)
at com.mongodb.DBPort.authenticate(DBPort.java:364)
at com.mongodb.DBPort.checkAuth(DBPort.java:375)
at com.mongodb.DBTCPConnector.doOperation(DBTCPConnector.java:206)
at com.mongodb.DBCollectionImpl.writeWithCommandProtocol(DBCollectionImpl.java:424)
at com.mongodb.DBCollectionImpl.insertWithCommandProtocol(DBCollectionImpl.java:389)
at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:188)
at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:167)
at com.mongodb.DBCollection.insert(DBCollection.java:93)
at com.mongodb.DBCollection.insert(DBCollection.java:78)
at com.mongodb.DBCollection.insert(DBCollection.java:120)
at org.springframework.data.mongodb.core.MongoTemplate$8.doInCollection(MongoTemplate.java:904)
at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:410)
at org.springframework.data.mongodb.core.MongoTemplate.insertDBObject(MongoTemplate.java:899)
at org.springframework.data.mongodb.core.MongoTemplate.doInsert(MongoTemplate.java:721)
at org.springframework.data.mongodb.core.MongoTemplate.insert(MongoTemplate.java:676)
Bitte beachten Sie diesen Link für weitere Details zu Authentifizierungsfehlern in mongo 3.0 aufgrund von Änderungen im Authentifizierungsmechanismus - http://www.claudiukuenzler.com/blog/553/authentication-mongodb-3.x-failed-with- mechanism-mongodb-C# .VkCO-64rLGI – IsAs
Der Wechsel zu MongoCredential.createCredential funktionierte für mich. – cnmuc