MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Kiểm tra xác thực MongoDB với trình điều khiển Java 3.0

Các hàm tạo MongoClient không đưa ra bất kỳ ngoại lệ nào liên quan đến kết nối. Thay vào đó, chúng trở lại ngay sau khi bắt đầu một hoặc nhiều chuỗi nền cố gắng thiết lập kết nối và xác thực dựa trên thông tin đăng nhập được cung cấp.

Chỉ khi một ứng dụng sử dụng MongoClient để thực hiện một số thao tác trên máy chủ MongoDB thì một ngoại lệ mới được đưa ra. Tuy nhiên, ngoại lệ đó là ngoại lệ thời gian chờ chung chỉ ra rằng trình điều khiển không tìm thấy máy chủ phù hợp cho hoạt động trước khi hết thời gian chờ lựa chọn máy chủ. Ví dụ:

    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
    }

sẽ ném một MongoTimeoutException sau 1 giây. Mặc dù không có MongoSecurityException nào được ném ra, thông báo của MongoTimeoutException sẽ chứa các chi tiết liên quan. Ví dụ:khi kết nối với bộ bản sao ba thành viên khi một trong các máy chủ gặp sự cố và xác thực không thành công trên hai máy chủ còn lại, trường thông báo của MongoTimeoutException sẽ giống như sau:

Đã hết thời gian chờ sau 1000 mili giây trong khi chờ máy chủ khớp vớiReadPreferenceServerSelector {readPreference =primary}. Chế độ xem của máy khách là {type =UNKNOWN, các máy chủ =[{address =localhost:27017, type =UNKNOWN, state =CONNECTING, exception ={com.mongodb.MongoSocketOpenException:Exception openssocket}, do {java.net.ConnectException:Kết nối bị từ chối}}, {address =localhost:27018, type =UNKNOWN, state =CONNECTING, exception ={com.mongodb.MongoSecurityException:Exceptionauthenticating MongoCredential {cơ chế =null, userName ='username', source ='admin', password =, engineProperties ={}}}, do {com.mongodb.MongoCommandException gây ra:Lệnh không thành công với lỗi 18:'Xác thực không thành công.' trên máy chủ localhost:27018. Phản hồi đầy đủ là {"ok":0.0, "code":18, "errmsg":"Xác thực không thành công". }}}]




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Công dụng của Jade hoặc Handlebars khi viết ứng dụng AngularJs

  2. Giám sát các phiên bản MongoDB bằng Dịch vụ Giám sát MongoDB (MMS)

  3. Các tùy chọn tìm kiếm toàn văn bản để thiết lập MongoDB

  4. Truy vấn Mongodb vào tháng, ngày, năm ... của ngày giờ

  5. Tại sao trình điều khiển nút MongoDB tạo hồ sơ cá thể bị lỗi bị phá hủy?