2

Previously I could use db.authenticate(String username, char[] password) method. With 2.13.0, how can I achieve this?

3 Answers 3

1

There is no replacement for db.authenticate(). The driver will use the credentials provided and make sure the connections are authenticated as they are created.

Based on this mongodb-user discussion the Java Driver team is open to discussions on what the real need for the db.authenticate(...) method.

Sign up to request clarification or add additional context in comments.

Comments

0

Use

import com.mongodb.MongoCredential;

MongoCredential mongoCred = MongoCredential.createMongoCRCredential(String username, String dbName, char[] password);

and create mongoclient using mongocredentials

com.mongodb.MongoClient.MongoClient(List seeds, List credentialsList, MongoClientOptions options)

1 Comment

I know about MongoCredential. I just want to authenticate database against username or password as I mentioned in my question.
0

We can have user-password based authentication for databases, in that case we need to provide authorization credentials like below for new version.

MongoCredential journaldevAuth = MongoCredential.createPlainCredential("pankaj", "journaldev", "pankaj123".toCharArray());
    MongoCredential testAuth = MongoCredential.createPlainCredential("pankaj", "test", "pankaj123".toCharArray());
    List<MongoCredential> auths = new ArrayList<MongoCredential>();
    auths.add(journaldevAuth);
    auths.add(testAuth);

    ServerAddress serverAddress = new ServerAddress("localhost", 27017);
    MongoClient mongo = new MongoClient(serverAddress, auths);

If you are using older versions, you need to provide authentication details after getting the DB object like below

MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("journaldev");
boolean auth = db.authenticate("pankaj", "pankaj123".toCharArray());

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.