簡體   English   中英

MongoDB Java驅動程序身份驗證-版本不匹配問題?

[英]MongoDB Java driver Authentication - Version mismatch issue?

問-無法通過Mongo Java驅動程序進行身份驗證。 在mongo shell上一切正常。

MongoDB服務器版本 -

db version v3.2.6

Java Mongodb驅動程序Maven依賴關系

version 2.6.2

這就是我所做的 -

  1. 啟動MongoDB-sudo mongod --port 27017 --dbpath / data / db
  2. 打開外殼-mongo --port 27017
  3. 使用管理員
  4. db.createUser({user:“ abc”,pwd:“ abc”,roles:[{role:“ root”,db:“ admin”}]})
  5. 使用必需的auth重新啟動-sudo mongod --auth --port 27017 --dbpath / data / db

Java方面

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());

結果

auth總是錯誤的。

我知道的MongoDB Java驅動程序2.x的身份驗證過程如下:

    MongoCredential credential = MongoCredential.createCredential(
            user, "admin", password.toCharArray());
    Mongo mongo = new MongoClient(new ServerAddress(mongoHostname), 
            Arrays.asList(credential));

關於使用2.x驅動程序訪問Mongo 3.2數據庫的注意事項,您至少需要MongoDB Java驅動程序版本2.14(請參閱MongoDB兼容性信息 )。 您的版本2.6.2太舊了。 您需要升級它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM