其中一個應用程序使用MongoClient作爲與最近啓用了身份驗證的MongoDB進行交互的核心。在這個mongoClient初始化爲:在MongoClient和UserCredentials中使用MongoTemplate
mongoClient = new MongoClient(serverAddress, Arrays.asList(MongoCredential.createCredential(userName, dbName, password.toCharArray())));
但是在很多地方,app使用mongoTemplate來查詢數據。現在,如果MongoTemplate創建爲:
new MongoTemplate(mongoClient, dbName);
它導致身份驗證失敗。
的唯一方法似乎用戶憑據傳遞到MongoTemplate是通過使用UserCredentials類由
但是如果我們通過UserCredentials爲:
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'.
它好像兩個不同的API並行存在。最好的方式是什麼讓他們倆能夠一起生活。
這個程序使用mongodata版本 '1.10.6.RELEASE'
我在你的問題中沒有看到「兩個不同的API」。什麼是2 API? –
我的意思是說無法使用UserCredentials與MongoClient,其中沒有一個似乎不推薦使用。 – tarunkumar