Mongodb 在Mongo Java Driver 2.13.0中,如何使用给定的用户名和密码对任何数据库进行身份验证?
以前我可以使用Mongodb 在Mongo Java Driver 2.13.0中,如何使用给定的用户名和密码对任何数据库进行身份验证?,mongodb,authentication,mongodb-java,mongo-java,mongo-java-driver,Mongodb,Authentication,Mongodb Java,Mongo Java,Mongo Java Driver,以前我可以使用db.authenticate(字符串用户名,字符[]密码)方法。使用2.13.0,我如何实现这一点?使用 导入com.mongodb.MongoCredential 蒙哥里德蒙哥里德= 创建MongoCredential(字符串用户名,字符串 dbName,char[]密码) 并使用mongocredentials创建mongoclient mongodb.MongoClient.MongoClient(列出种子,列表 凭据列表,MongoClient选项)没有db.authen
db.authenticate(字符串用户名,字符[]密码)
方法。使用2.13.0,我如何实现这一点?使用
导入com.mongodb.MongoCredential
蒙哥里德蒙哥里德=
创建MongoCredential(字符串用户名,字符串
dbName,char[]密码)
并使用mongocredentials创建mongoclient
mongodb.MongoClient.MongoClient(列出种子,列表
凭据列表,MongoClient选项)没有db.authenticate()的替代品。驱动程序将使用提供的凭据,并确保连接在创建时经过身份验证
基于此,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);
我知道MongoCredential。正如我在问题中提到的,我只想根据用户名或密码对数据库进行身份验证。
MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("journaldev");
boolean auth = db.authenticate("pankaj", "pankaj123".toCharArray());