Java/Mongodb身份验证

Java/Mongodb身份验证,java,mongodb,authentication,mule,Java,Mongodb,Authentication,Mule,我看到了很多教程,展示了如何使用Java在mongodb中进行身份验证 我已将mongodb配置为启用了身份验证。 在控制台中,我使用 使用管理员 auth(“myUser”、“newPassword”)并运行良好 在java中,每个访问过的站点的代码都是 Mongo mongo = new Mongo("localhost", 27017); DB db = mongo.getDB("myBase"); boolean auth = db.authen

我看到了很多教程,展示了如何使用Java在mongodb中进行身份验证

我已将mongodb配置为启用了身份验证。 在控制台中,我使用

使用管理员

auth(“myUser”、“newPassword”)并运行良好

在java中,每个访问过的站点的代码都是

Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("myBase");

boolean auth = db.authenticate("myUser", "newPassword".toCharArray());
    //auth is true if everithing went well
最大的问题是代码不适合我,我不知道为什么。我测试了显式更改为管理数据库

Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("admin");

boolean auth = db.authenticate("myUser", "newPassword".toCharArray());
DB db = mongo.getDB("myBase");
    //auth is true if everithing went well
这是可行的,但对我来说,这不是一个解决方案,因为我正在尝试将mongo与mule结合使用,问题是我不能在每个身份验证的db之间进行更改,我必须这样做

为什么第一个代码适用于所有人而不是我


我意识到问题出在哪里


mongo似乎为存储在数据库本身中的每个数据库使用用户。我在同一个数据库中创建了这个用户,它可以正常工作。这是一个非常奇怪的特性,因为我在mongo中会有很多重复的用户,我拥有的每个DB都有一个。在Mongo中为用户管理减1…

该方法现在已被弃用。对我们来说,新的首选方法是创建一个客户端,该客户端将验证与服务器的所有连接

我意识到问题出在哪里


mongo似乎为存储在数据库本身中的每个数据库使用用户。我在同一个数据库中创建了这个用户,它可以正常工作。这是一个非常奇怪的特性,因为我在mongo中会有很多重复的用户,我拥有的每个DB都有一个。在Mongo中管理用户时减去1…

我认为这不是问题所在,因为我使用的是mule,在内部它使用db.authenticate(username、password.tocharray())检查第1257行可能是mongo配置问题?添加了一个错误,但如果您仔细阅读问题的内容,这并不重要。我将提到这种可能性,所以我很高兴您找到了它。2.6修改auth是否合理,以便查看即将进行的更改时不会有任何伤害。