Я пишу код Java для простого поиска в коллекции в MongoDB, используя Spring Boot с MongoRepository. Я получаю следующую ошибку:
com.mongodb.MongoQueryException: Query failed with error code 13 and error message 'not authorized on PatientStore to execute command { find: "patientEpisode", filter: { _id: "125903_57aa8715217063663d56b1fb" }, limit: 1, singleBatch: true }' on server db-mongodev.orgname.local:27017
Однако я могу выполнить следующий запрос из Robo3t с тем же паролем пользователя.
db.patientEpisode.find({_id : "125903_57a3782afc1ce5ab030f7535"}).limit(1);
Вот как я подключаюсь к MongoDB.
@Bean
public MongoDbFactory mongoDbFactory(){
MongoRepository mongoRepository = new MongoRepository("PatientStore");
logger.info("printing values again: {}",mongoRepository.getUsernameMongo());
logger.info("mongoDatabase {}",mongoDatabase);
logger.info("mongoRepository.getPasswordMongo().toCharArray():{}",mongoRepository.getPasswordMongo().toCharArray());
// MongoCredential credential = MongoCredential.createCredential(mongoRepository.getUsernameMongo(),
// mongoDatabase,mongoRepository.getPasswordMongo().toCharArray());
// MongoCredential credential = MongoCredential.createScramSha1Credential(mongoRepository.getUsernameMongo(),mongoDatabase,mongoRepository.getPasswordMongo().toCharArray());
/*
MongoCredential credential = MongoCredential.createScramSha1Credential("user1","patientstore","password1".toCharArray());
*/
MongoClientURI clientURI = new MongoClientURI("mongodb://user1:password1@db-mongodev.orgname" +
".local:27017/patientstore" +
"?authMechanism=SCRAM-SHA-1");
MongoClient mongoClient = (MongoClient)Mongo.Holder.singleton().connect(clientURI);
/*
MongoClient mongoClient = new MongoClient(new ServerAddress(mongoHost,mongoPort),credential,
MongoClientOptions.builder().writeConcern(WriteConcern.W1.withJournal(true)).build());
*/
return new SimpleMongoDbFactory(mongoClient,"PatientStore");
}
Как видите, я использовал API MongoURI
и MongoCredential
для создания соединения, но в обоих случаях я получил ту же ошибку. Что может быть причиной этого?