我如何在 Mongo Java Driver 2.13.0 中使用给定的用户名和密码验证任何数据库?
How can I authenticate any database with given username and password in Mongo Java Driver 2.13.0?
以前我可以使用 db.authenticate(String username, char[] password)
方法。使用 2.13.0,我该如何实现?
使用
import com.mongodb.MongoCredential;
MongoCredential mongoCred =
MongoCredential.createMongoCRCredential(String username, String
dbName, char[] password);
并使用 mongocredentials 创建 mongoclient
com.mongodb.MongoClient.MongoClient(列出种子, 列出
credentialsList, MongoClientOptions 选项)
db.authenticate() 没有替代品。驱动程序将使用提供的凭据并确保连接在创建时经过身份验证。
基于 this mongodb-user discussion,Java 驱动程序团队愿意讨论 db.authenticate(...) 方法的真正需求。
我们可以对数据库进行基于用户密码的身份验证,在这种情况下,我们需要为新版本提供如下授权凭据。
MongoCredential journaldevAuth = MongoCredential.createPlainCredential("pankaj", "journaldev", "pankaj123".toCharArray());
MongoCredential testAuth = MongoCredential.createPlainCredential("pankaj", "test", "pankaj123".toCharArray());
List<MongoCredential> auths = new ArrayList<MongoCredential>();
auths.add(journaldevAuth);
auths.add(testAuth);
ServerAddress serverAddress = new ServerAddress("localhost", 27017);
MongoClient mongo = new MongoClient(serverAddress, auths);
如果您使用的是旧版本,您需要在获取数据库对象后提供身份验证详细信息,如下所示
MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("journaldev");
boolean auth = db.authenticate("pankaj", "pankaj123".toCharArray());
以前我可以使用 db.authenticate(String username, char[] password)
方法。使用 2.13.0,我该如何实现?
使用
import com.mongodb.MongoCredential;
MongoCredential mongoCred = MongoCredential.createMongoCRCredential(String username, String dbName, char[] password);
并使用 mongocredentials 创建 mongoclient
com.mongodb.MongoClient.MongoClient(列出种子, 列出 credentialsList, MongoClientOptions 选项)
db.authenticate() 没有替代品。驱动程序将使用提供的凭据并确保连接在创建时经过身份验证。
基于 this mongodb-user discussion,Java 驱动程序团队愿意讨论 db.authenticate(...) 方法的真正需求。
我们可以对数据库进行基于用户密码的身份验证,在这种情况下,我们需要为新版本提供如下授权凭据。
MongoCredential journaldevAuth = MongoCredential.createPlainCredential("pankaj", "journaldev", "pankaj123".toCharArray());
MongoCredential testAuth = MongoCredential.createPlainCredential("pankaj", "test", "pankaj123".toCharArray());
List<MongoCredential> auths = new ArrayList<MongoCredential>();
auths.add(journaldevAuth);
auths.add(testAuth);
ServerAddress serverAddress = new ServerAddress("localhost", 27017);
MongoClient mongo = new MongoClient(serverAddress, auths);
如果您使用的是旧版本,您需要在获取数据库对象后提供身份验证详细信息,如下所示
MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("journaldev");
boolean auth = db.authenticate("pankaj", "pankaj123".toCharArray());