gpt4 book ai didi

java - 将 MongoTemplate 与 MongoClient 和 UserCredentials 结合使用

转载 作者:行者123 更新时间:2023-12-04 13:46:40 29 4
gpt4 key购买 nike

其中一个应用程序使用 MongoClient 作为与最近启用了身份验证的 MongoDB 交互的核心。在这个 mongoClient 被初始化为:

mongoClient = new MongoClient(serverAddress, Arrays.asList(MongoCredential.createCredential(userName, dbName, password.toCharArray())));

但是在很多地方,应用程序使用 mongoTemplate 来查询数据。现在,如果 MongoTemplate 被创建为:
new MongoTemplate(mongoClient, dbName);

它会导致身份验证失败。

似乎将用户凭据传递给 MongoTemplate 的唯一方法是通过使用 UserCredentials 类

但是,如果我们将 UserCredentials 传递为:
    public MongoTemplate(Mongo mongo, String databaseName, UserCredentials userCredentials) {

结果是:
Usage of 'UserCredentials' with 'MongoClient' is no longer supported. Please use 'MongoCredential' for 'MongoClient' or just 'Mongo'.

似乎两个不同的 API 并行存在。什么是最好的方式,让他们两个可以住在一起。

此应用程序使用 mongodata 版本为“1.10.6.RELEASE”

最佳答案

尝试这个:

MongoCredential mongoCredential = MongoCredential.createCredential("user", "database","password".toCharArray());
ServerAddress address = new ServerAddress("mymongo.mycompany.com", 62797);
MongoClient mongoClient = new MongoClient(address, Arrays.asList(mongoCredential));
MongoTemplate mongoTemplate = new MongoTemplate(mongoClient, "database");

关于java - 将 MongoTemplate 与 MongoClient 和 UserCredentials 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45909361/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com