2

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

4

3 回答 3

1

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

基于这个 mongodb-user 讨论,Java 驱动程序团队愿意讨论 db.authenticate(...) 方法的真正需求。

于 2015-03-31T01:29:13.733 回答
0

利用

导入 com.mongodb.MongoCredential;

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

并使用 mongocredentials 创建 mongoclient

com.mongodb.MongoClient.MongoClient(列出种子,列出凭据列表,MongoClientOptions 选项)

于 2015-03-30T11:21:38.903 回答
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());
于 2016-07-12T13:05:45.273 回答