如何在Mongo Java Driver 2.13.0中使用给定的用户名和密码验证任何数据库?

时间:2015-03-30 10:24:59

标签: mongodb authentication mongodb-java mongo-java mongo-java-driver

以前我可以使用db.authenticate(String username, char[] password)方法。使用2.13.0,我该如何实现?

3 个答案:

答案 0 :(得分:1)

db.authenticate()没有替代品。驱动程序将使用提供的凭据,并确保在创建连接时对其进行身份验证。

基于this mongodb-user discussion,Java驱动程序团队可以讨论db.authenticate(...)方法的真正需求。

答案 1 :(得分:0)

使用

  

import com.mongodb.MongoCredential;

     

MongoCredential mongoCred =   MongoCredential.createMongoCRCredential(String username,String   dbName,char [] password);

使用mongocredentials创建mongoclient

com.mongodb.MongoClient.MongoClient(List seeds,List  credentialsList,MongoClientOptions选项)

答案 2 :(得分:0)

我们可以对数据库进行基于用户密码的身份验证,在这种情况下,我们需要为新版本提供如下所示的授权凭据。

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);

如果您使用的是旧版本,则需要在获取DB对象后提供身份验证详细信息

MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("journaldev");
boolean auth = db.authenticate("pankaj", "pankaj123".toCharArray());