使用信任模式的Mongodb身份验证在Java中失败

时间:2013-09-07 19:11:49

标签: java mongodb authentication

我有一个在localhost上运行的Mongodb服务器,没有身份验证(测试目的)。在我的Java项目中,我添加了一个身份验证字段(以便用户可以修改配置,如果它在信任模式下,则只需将其留空)。问题是,它被拒绝了,在Mongodb中,我得到了:

  

星期六07年7月15日星期六:17.018 [conn4]字段丢失/收到的身份验证错误类型   e命令testdb

我知道为什么会这样,但我想不出办法阻止它。它发生的原因是因为如果授权失败或者验证测试已经使用不同的凭据成功,db.authenticate()将返回false。在mongodb控制台中,我在上面的错误之前得到了这个:

  

Sat Sep 07 15:04:17.010 [initandlisten]连接接受   127.0.0.1:53602#4(现已打开2个连接)

其中一个连接是我的shell,另一个是项目。这是我的Java代码:

boolean auth =
db.authenticate(getConfig().getString("Database.username", ""),
getConfig().getString("Database.password", "").toCharArray());
        if (!db.isAuthenticated() && auth == false) {
                // Stop the application
        }

我必须阻止它以防止控制台变得丑陋。我不明白为什么:

!db.isAuthenticated()

不起作用。这应该已经阻止了它的禁用。如果有人可以提供帮助,那就太好了!

1 个答案:

答案 0 :(得分:0)

我遇到了这个问题并通过在我的应用程序属性中替换它们来修复它:

spring.data.mongodb.uri=mongodb://localhost/test

使用:

//div[@class='smallfont']/input