使用 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一对多和多对一关系