Я попытался соединить базу данных MongoDB с учетными данными для входа.Я использовал (bson-3.8.2, mongodb-driver-3.9.1 и mongodb-driver-core-3.8.2) эти jar-файлы в моем Java-проекте, и каждый из них требуется в моем коде.Для соединения кода Java с базой данных MongoDB я использовал следующий код:
MongoCredential credential = MongoCredential.createScramSha1Credential("myUserAdmin", "admin", "abc123".toCharArray());
MongoClient mongoCl = new MongoClient(hostname, 27017), Arrays.asList(credential));
MongoDatabase db = mongoCl.getDatabase( "mydb" );
MongoCollection collection = db.getCollection("employee");
FindIterable<Document> fi = collection.find();
MongoCursor<Document> cursor = fi.iterator();
while (cursor.hasNext()) {
Document doc = cursor.next();
String ename = doc.getString("email");
System.out.println("Email: " + ename);
}
"hostname" - это IP-адрес другой системы, потому что я хочу подключиться к базе данных MongoDB этой системы.
При создании myUserAdmin я дал разрешение на чтение и запись в любую базу данных.
При попытке запустить код возникло следующее исключение:
Исключение: com.mongodb.MongoSecurityException: исключение, аутентифицирующее MongoCredential {механизм = SCRAM-SHA-1
Для созданияучетные данные, я перепробовал много методов, таких как createScramSha1Credential, createScramSha256Credential, createCredential, createPlainCredential
Тот же код работал с аутентификацией, установленной в false в MongoDB для соединения с базой данных.
Может кто-нибудь объяснить мне, как решить эту проблему?Заранее спасибо.