MongoDB GridFS身份验证无法正常工作

时间:2017-08-09 12:41:47

标签: spring mongodb spring-boot spring-data gridfs

我试图通过Spring Boot应用程序将数据插入MongoDB 3.4 GridFS存储并启用身份验证,但我一直收到此错误:

  

查询失败,错误代码为13,错误消息'未授权用户在服务器ip上执行命令{find:\“fs.files \”,filter:{metadata.fieldname:\“someContent \”}}': 27017"

我创建了一个具有“超级用户”权限的用户:

use admin
db.createUser(
{
   user: "admin", 
   pwd: "password", 
   roles:["root"]
})

我的spring boot application.properties是:

spring.data.mongodb.host=ip
spring.data.mongodb.port=27017
spring.data.mongodb.username=admin
spring.data.mongodb.password=password
spring.data.mongodb.database=user
spring.data.mongodb.authentication-database=admin

我已经尝试了“旧的”MongoDB角色而没有运气:

db.createUser(
{
   user: "admin",
   pwd: "password",
   roles: [
             { role: "userAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "clusterAdmin", db: "admin" }
          ]
})

读取和写入其他(非gridFS)数据库非常有效。 关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

解决方案: 我仍然有一个AbstractMongoConfiguration类。

@Configuration
public class SpringMongoConfig extends AbstractMongoConfiguration {
  //some code...
}

删除它解决了它。 您必须使用application.properties或MongoDB配置的java类。