环境
弹簧启动 1.3.2
春天-mongo 0.8.0
用 gradle 构建我的 spring-boot 微服务。
问题
mongo 数据库之一启用身份验证,所以我在 application.yml 中配置这些参数
spring:
data:
mongo:
username:xxx
password:xxx
authentication-database:xxx
它适用于已设置身份验证的 mongodb。
但是我得到了 mongdb 的错误, 即使我设置了用户名 =“”,密码 =“”,它也没有设置身份验证。它因身份验证而失败。
引起:com.mongodb.CommandFailureException: { "serverUsed" : "localhost:27017" , "ok" : 0.0 , "code" : 18 , "errmsg" : "Authentication failed."} at com.mongodb.CommandResult.getException (CommandResult.java:76) ~[mongo-java-driver-2.13.3.jar:na] at com.mongodb.CommandResult.throwOnError(CommandResult.java:140) ~[mongo-java-driver-2.13.3. jar:na] 在 com.mongodb.DBPort$SaslAuthenticator.authenticate(DBPort.java:903) ~[mongo-java-driver-2.13.3.jar:na] 在 com.mongodb.DBPort.authenticate(DBPort.java:第436章~[mongo-java-driver-2.13.3.jar:na]在com.mongodb.DBPort.checkAuth(DBPort.java:447)~[mongo-java-driver-2.13.3.jar:na]在com.mongodb.DBTCPConnector.doOperation(DBTCPConnector.java:207) ~[mongo-java-driver-2.13.3.jar:na] 在 com.mongodb。DBCollectionImpl.createIndex(DBCollectionImpl.java:392) ~[mongo-java-driver-2.13.3.jar:na] at com.mongodb.DBCollection.createIndex(DBCollection.java:597) ~[mongo-java-driver-2.13 .3.jar:na]
我的问题是如何为这些未设置身份验证的 mongo db 删除 mongo.username,password 密钥动态?
我也很好奇为什么不能删除 application.yml 文件中的键。而在本文档中看到我们可以使用 Maven 或 gradle 自动扩展属性:属性扩展
如果只是将这些键留空,则更新,仍然会出错
完整的响应是 { "ok" : 0.0, "errmsg" : "Invalid database name: ''", "code" : 73 }}}]