一つは、認証が最近有効にされたのMongoDBと対話するためのコアとしてMongoClientを使用します。しかし、多くの場所でアプリがデータを照会するmongoTemplateを使用していますMongoClientとMongoTemplateを使用し、UserCredentials
mongoClient = new MongoClient(serverAddress, Arrays.asList(MongoCredential.createCredential(userName, dbName, password.toCharArray())));
:このmongoClientのように初期化しています。 MongoTemplateが次のように作成された場合:
new MongoTemplate(mongoClient, dbName);
認証に失敗します。
唯一の方法は、私たちのようにUserCredentialsを渡す場合は
によってUserCredentialsクラスを使用して経由でMongoTemplateにユーザーの資格情報を渡すようだ:
になりpublic MongoTemplate(Mongo mongo, String databaseName, UserCredentials userCredentials) {
:
Usage of 'UserCredentials' with 'MongoClient' is no longer supported. Please use 'MongoCredential' for 'MongoClient' or just 'Mongo'.
それ2つの異なるAPIが並行して存在するようです。両方が一緒に暮らすことができるように、何が最善の方法です。
このアプリは '1.10.6.RELEASE' としてmongodataバージョンを使用しています
質問に「2つの異なるAPI」が表示されません。 2つのAPIとは何ですか? –
私はMongoClientでUserCredentialsを使用することができないとは言いません。 – tarunkumar