8

次のようなものを作ることは可能ですか:

MongoClient mongo = new MongoClient(ip, port, usrName, password)

MongoVUEやその他の SQL ベースのデータベースの認証方法と同様の JAVA で。

そこでは、DB インスタンスへの接続中に認証が行われます。

MongoClient Java ドキュメントに適切なインスタンス メソッドが表示されない

認証方法(オプション) 公式ドキュメント

現在認証を使用していないアプリケーション内の既存のすべてのクエリメソッドを変更する必要があるため、私の目標には合いません。

Java ドライバーを使用して MongoDBに認証する方法は、まさに私が必要としているものに見えますが、mongo 2.10.1 ディストリビューションには com.mongodb.MongoCredential クラスがありません。

4

3 に答える 3

2

Bob Kuhar の受け入れられた回答に続いて、Mongo3 では、コード スニペットに示すように、メカニズムがチャレンジ レスポンスから SHA1 に変更されました。コード スニペットを次のように更新する必要があります。

...
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
...

// Manage the mongo db connection...
List<ServerAddress> seeds = new ArrayList<ServerAddress>();
seeds.add( new ServerAddress(configuration.getMongoHost(), configuration.getMongoPort() ));
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(
    MongoCredential.createScramSha1Credential(
        configuration.getMongoUser(),
        configuration.getMongoDb(),
        configuration.getMongoPassword().toCharArray()
    )
);
MongoClient mongo = new MongoClient( seeds, credentials );
于 2016-03-29T16:42:43.370 に答える