MongoSecurityException:Java中认证MongoCredential的异常

时间:2018-12-11 12:28:36

标签: mongodb mongodb-security

我试图用登录凭据连接MongoDB数据库。我在Java项目中使用了这些jar文件(bson-3.8.2,mongodb-driver-3.9.1和mongodb-driver-core-3.8.2),并且它们在我的代码中都是必需的。为了将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);              
}

“主机名”是其他系统的IP地址,因为我想连接该系统的MongoDB数据库。

在创建“ myUserAdmin”时,我已授予readwriteanydatabase权限。

尝试运行代码时引发以下异常:

异常:com.mongodb.MongoSecurityException:认证MongoCredential {mechanism = SCRAM-SHA-1

的异常

为了创建凭据,我尝试了许多方法,例如createScramSha1Credential,createScramSha256Credential,createCredential,createPlainCredential

相同的代码在MongoDB中将身份验证设置为false用于数据库连接。

有人可以向我解释如何解决此问题吗? 预先感谢。

0 个答案:

没有答案