问题
playing around with this and cannot get a grip
on how to connect with password.
In MongoDb it's quite easy to understand but when i use morphia it's not
so quite obvious because documentation is minimal or i missed it.
I already have a Collection with 5 documents.
Can i apply a user/pass on that one?
How can i modify this code so logging uses a username and password?
Took the code from this post (Thanks @Lennart Koopmann)
MongoDB Java driver tutorial
public final class MongoConnectionManager {
private static final MongoConnectionManager
INSTANCE = new MongoConnectionManager();
private final Datastore db;
public static final String DB_NAME = "mongo_database";
private MongoConnectionManager() {
try {
Mongo m = new Mongo("localhost", 27017);
db = new Morphia().map(UserData.class)
.map(Statistic.class)
.map(FriendList.class)
.map(ServerData.class)
.map(BatchData.class).createDatastore(m, DB_NAME);
db.ensureIndexes();
}
catch (Exception e) {
throw new RuntimeException("Error initializing mongo db", e);
}
}
public static MongoConnectionManager instance() {
return INSTANCE;
}
public Datastore getDb() {
return db;
}
}
回答1:
createDatastore(m, DB_NAME, username, password)
This overloaded method has been introduced here.
Maybe you are using older Moprhia client?
回答2:
maybe you could use the following code:
Morphia morphia = new Morphia();
ServerAddress addr = new ServerAddress("host", 27017);
List<MongoCredential> credentialsList = new ArrayList<MongoCredential>();
MongoCredential credentia = MongoCredential.createCredential(
"username", "dbname", "password".toCharArray());
credentialsList.add(credentia);
MongoClient client = new MongoClient(addr, credentialsList);
datastore = morphia.createDatastore(client, "dbname");
来源:https://stackoverflow.com/questions/7828098/mongodb-and-morphia-password-and-username