Q - Cannot authenticate via Mongo Java Driver. Things work fine on mongo shell.
MongoDB Server Version -
db version v3.2.6
Java Mongodb Driver Maven Dependency
version 2.6.2
This is what I did -
- Start MongoDB - sudo mongod --port 27017 --dbpath /data/db
- Open shell - mongo --port 27017
- use admin
- db.createUser({user:"abc",pwd:"abc",roles:[{role:"root",db:"admin"}]})
- Restart with auth required - sudo mongod --auth --port 27017 --dbpath /data/db
Java side
MongoOptions moptions = new MongoOptions();
moptions.autoConnectRetry = Boolean.getBoolean(prop.getProperty("MONGO_OPTIONS_AUTOCONNECT_RETRY"));
moptions.connectionsPerHost = Integer.parseInt(prop.getProperty("MONGO_OPTIONS_CONNECTIONS_PER_HOST"));
moptions.threadsAllowedToBlockForConnectionMultiplier = Integer.parseInt(prop.getProperty("MONGO_OPTIONS_THREADS_BLOCK"));
ServerAddress srvAddr = new ServerAddress(prop.getProperty("MONGODB_HOST"), Integer.parseInt(prop.getProperty("MONGODB_PORT")));
client = new Mongo(srvAddr, moptions);
DB adminDB = client.getDB("admin");
Boolean auth = adminDB.authenticate("abc", "abc".toCharArray());
Result
auth always comes out FALSE.