使用 Spring Boot 对 mongoDB 进行身份验证失败

Posted

技术标签:

【中文标题】使用 Spring Boot 对 mongoDB 进行身份验证失败【英文标题】:AuthenticationFailed to mongoDB with Spring boot 【发布时间】:2019-05-29 09:30:01 【问题描述】:

我正在尝试创建一个服务器,我的网页/应用程序可以在其中进行调用,从现在开始,我从登录开始,所以我已经根据我的需要创建了服务器,问题出在 application.properties 我我错过了一些东西,我有这个:

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=mydatabase
spring.data.mongodb.username=stuart
spring.data.mongodb.password=stuartdto
spring.data.mongodb.database=mydatabase

尝试调用登录调用时的错误是这个

com.mongodb.MongoCommandException:命令失败,错误 18 (AuthenticationFailed):“身份验证失败。”在服务器 localhost:27017 上。完整的响应是 "ok" : 0.0, "errmsg" : "Authentication failed.", "code" : 18, "codeName" : "AuthenticationFailed"

我已经使用这个命令mongod --auth 启动了mongod 并且我已经创建了一个用户来执行此操作(正在工作,因为如果我手动执行mongo -u user -p 'password' --authenticationDatabase "admin" 工作)直到我添加此@987654326 它才工作@ 所以也许这就是我需要的 Spring

我错过了什么?

【问题讨论】:

解决此类身份验证错误的一个好方法是查看 MongoDB 日志文件 (mongodb.log)。将记录身份验证失败,并显示问题是密码错误还是用户名错误。 【参考方案1】:

如果你使用spring.data.mongodb.uri方法,

spring.data.mongodb.uri=mongodb://stuart:stuartdto@localhost:27017/mydatabase?authSource=admin

【讨论】:

【参考方案2】:

所以也许这就是我在 Spring 中所需要的

当然,你说的是spring.data.mongodb.authentication-database = mydatabase,这是不正确的!

您想改用spring.data.mongodb.authentication-database = admin,它会起作用。

【讨论】:

以上是关于使用 Spring Boot 对 mongoDB 进行身份验证失败的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 spring security 和 spring boot 对 Google 用户进行身份验证,将 mongoDB 作为存储库?

Spring Boot项目中的MongoDB一对多和多对一关系

Spring Boot MongoDb 复杂查询

想使用spring boot将图像导入mongodb

spring boot系列spring boot 使用mongodb

Spring Boot:Spring Boot 中 MongoDB 的使用