MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

spring-data-mongodb daje wyjątek uwierzytelniania mongodb

I think maybe the mongodb's authorization has little hard to understand.
This works for me,

    @Configuration
public class MongoConfig {

    @Value("${mongo.host}")
    private  String host;

    @Value("#{new Integer('${mongo.port}')}")
    private  Integer port;

    @Value("${mongo.database}")
    private  String database;

    @Value("${mongo.username}")
    private  String username;

    @Value("${mongo.password}")
    private  String password;

    public @Bean MongoClientFactoryBean mongoDbFactory() throws Exception {
        MongoClientFactoryBean clientFactoryBean = new MongoClientFactoryBean();
        clientFactoryBean.setHost(host);
        clientFactoryBean.setPort(port);
        MongoCredential credential = MongoCredential.createScramSha1Credential(username, database, password.toCharArray());
        clientFactoryBean.setCredentials(new MongoCredential[]{credential});
        return clientFactoryBean;
    }

    public @Bean MongoTemplate mongoTemplate(Mongo mongo) throws Exception {
        MongoTemplate mongoTemplate = new MongoTemplate(mongo, database);
        return mongoTemplate;

    }
}

---------------------------------
mongo.host=127.0.0.1
mongo.port=27017
mongo.username=hisoka
mongo.password=welcome
mongo.database=test
----------------------------
Just in mongod cmd create user hisoka for db test,
db.createUser({"user":"hisoka","pwd":"welcome","roles":[{role:"readWrite",db:"test"}]});
------------------------------
Take look in mongoChef, the mongodb auth info:
{ 
    "_id" : "test.hisoka", 
    "user" : "hisoka", 
    "db" : "test", 
    "credentials" : {
        "SCRAM-SHA-1" : {
            "iterationCount" : NumberInt(10000), 
            "salt" : "tfXYRbCj6N433PFWJzwarA==", 
            "storedKey" : "pMnNVX7Co7AY7Q4b/dtq18IQfeE=", 
            "serverKey" : "x8vUt590SYVxqW2PW6DA849iTgE="
        }
    }, 
    "roles" : [
        {
            "role" : "readWrite", 
            "db" : "test"
        }
    ]
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak bezpiecznie zignorować zduplikowane błędy klucza za pomocą insert_many

  2. MongoDB — argument $size musi być tablicą, ale był typu:EOO / brak

  3. Mongoose, sortuj według obcego/wypełnionego klucza

  4. Jaka jest różnica między Atlasem MongoDB a Atlasem MongoDB dla AWS

  5. eksportuj i importuj dane z mongodb za pomocą node.js express