7

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

Sat Sep 07 15:04:17.018 [conn4] 收到的验证命令 testdb 中的字段缺失/类型错误

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

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

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

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

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

!db.isAuthenticated()

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

4

1 回答 1

0

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

spring.data.mongodb.database=test
spring.data.mongodb.host=localhost
spring.data.mongodb.password=
spring.data.mongodb.port=27017
spring.data.mongodb.username=

和:

spring.data.mongodb.uri=mongodb://localhost/test
于 2016-06-29T13:00:13.583 回答