2017-08-09 1 views
2

Je suis en train d'insérer des données à un stockage MongoDB 3.4 GridFS avec authentification activée via une application de démarrage de printemps, mais je continue à obtenir cette erreur:MongoDB authentification GridFS ne fonctionne pas

Query failed with error code 13 and error message 'not authorized on user to execute command { find: \"fs.files\", filter: { metadata.fieldname: \"someContent\" } }' on server ip:27017"

J'ai créé un utilisateur avec « super-utilisateur "droits à cela:

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

Mes application.properties de démarrage du printemps sont:

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 

Je l'ai déjà essayé les « anciens » des rôles MongoDB sans chance: les bases de données

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

lecture et l'écriture à d'autres (non-GridFS) fonctionne parfaitement. Des idées pour résoudre ce problème?

+0

Cela semble être un problème de configuration de démarrage à ressort ... Lors de l'utilisation de "Robo 3T" je peux lire à partir de fs.files et fs.chunks. – VERGiL

Répondre

0

Solution: Une classe AbstractMongoConfiguration était toujours présente.

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

La suppression l'a résolu. Vous devez utiliser application.properties OU une classe Java pour la configuration MongoDB.