MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Periksa otentikasi MongoDB dengan driver Java 3.0

Konstruktor MongoClient tidak membuang pengecualian terkait konektivitas apa pun. Sebaliknya, mereka kembali segera setelah memulai satu atau beberapa utas latar belakang yang mencoba membuat koneksi dan mengautentikasi berdasarkan kredensial yang diberikan.

Hanya ketika aplikasi menggunakan MongoClient untuk melakukan beberapa operasi di server MongoDB, pengecualian akan dilempar. Namun, pengecualian itu adalah pengecualian batas waktu umum yang menunjukkan bahwa pengandar gagal menemukan server yang cocok untuk operasi sebelum batas waktu pemilihan server berakhir. Misalnya:

    MongoClient client = new MongoClient(asList(new ServerAddress("localhost"), new ServerAddress("localhost:27018")),
                                         singletonList(MongoCredential.createCredential("username",
                                                                                        "admin",
                                                                                        "bad".toCharArray())),
                                         MongoClientOptions.builder().serverSelectionTimeout(1000).build());


    try {
        client.getDB("admin").command("ping");
    } catch (MongoTimeoutException e) {
        // do something
    }

akan melempar MongoTimeoutException setelah 1 detik. Meskipun tidak ada MongoSecurityException yang dilempar, pesan dari MongoTimeoutException akan berisi detail yang relevan. Misalnya, saat menghubungkan ke set replika tiga anggota saat salah satu server mati, dan otentikasi gagal pada dua sisanya, bidang pesan MongoTimeoutException akan menjadi seperti:

Waktu habis setelah 1000 md saat menunggu server yang cocok denganReadPreferenceServerSelector{readPreference=primary}. Tampilan klien dari status cluster adalah {type=UNKNOWN, server=[{address=localhost:27017,type=UNKNOWN, state=CONNECTING,exception={com.mongodb.MongoSocketOpenException:Exception openingsocket}, yang disebabkan oleh {java.net.ConnectException:Koneksi ditolak}},{address=localhost:27018, type=UNKNOWN, state=CONNECTING,exception={com.mongodb.MongoSecurityException:Exceptionauthenticating MongoCredential{mechanism=null, userName='username',source='admin', password=, mechanismProperties={}}}, disebabkan oleh{com.mongodb.MongoCommandException:Perintah gagal dengan kesalahan 18:'Otentikasi gagal.' di server localhost:27018. Respons lengkapnya adalah { "ok" :0.0, "code" :18, "errmsg" :"Otentikasi gagal." }}}]




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongod HostnameCanonicalizationWorker error pada OS X

  2. Membuat Struktur untuk Agregasi

  3. MongoDB :kerangka kerja agregasi :$cocok antar bidang

  4. Bagaimana cara menanyakan objek bersarang?

  5. Mongodb:Kueri objek json yang bersarang dalam array