MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Wyjątek GSS:nie podano prawidłowych poświadczeń (poziom mechanizmu:nie udało się znaleźć żadnego tagu Kerberos)

Miliony podziękowania dla wszystkich, którzy odpowiedzieli i spójrz na moje pytanie.

Po dodaniu kilku właściwości systemu i nowego pliku konfiguracyjnego, w końcu jestem w stanie połączyć się z serwerem MongoDB. Niniejszym zaktualizowany kod -

try {
        System.setProperty("java.security.krb5.conf","C:/mongodb/UnixKeytab/krb5.conf");
        System.setProperty("java.security.krb5.realm","EXAMPLE.COM");
        System.setProperty("java.security.krb5.kdc","example.com");
        System.setProperty("javax.security.auth.useSubjectCredsOnly","false");
        System.setProperty("java.security.auth.login.config","C:/mongodb/UnixKeytab/gss-jaas.conf");


        List<ServerAddress> serverAddresses = new ArrayList<ServerAddress>();
        ServerAddress address = new ServerAddress(host, port);
        serverAddresses.add(address);
        List<MongoCredential> credentials = new ArrayList<MongoCredential>();
        MongoCredential credential = MongoCredential.createGSSAPICredential(username);
        credentials.add(credential);
        MongoClient mongoClient1 = new MongoClient(serverAddresses, credentials);
        DB db = mongoClient1.getDB(database);

    } catch (UnknownHostException e) {
        e.printStackTrace();
    }

Mój plik krb5.conf wygląda jak poniżej -

[libdefaults]
     default_realm = EXAMPLE.COM
     default_tkt_enctypes = des-cbc-md5 rc4-hmac
     default_tgs_enctypes = des-cbc-md5 rc4-hmac
     default_keytab_name = <keytab file path>
[realms]
EXAMPLE.COM = {
    kdc = example.com
    master_kdc = example.com
    default_domain = EXAMPLE.COM
}
INTRANET = {
    kdc = example.com
    master_kdc = example.com
    default_domain = example.com
}

Mój plik gss-jaas.conf wygląda jak poniżej -

com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
useTicketCache=false
principal="[email protected]_REALM"
doNotPrompt=true
keyTab="path-to-my-keytab-file"
debug=true;};

Wysłany przeze mnie kod działa dla mnie. Mam nadzieję, że to zadziała dla innych.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Aktualizuj zagnieżdżone obiekty tablicowe na podstawie właściwości w MongoDB

  2. Jak mogę wygenerować ObjectId z mangustą?

  3. Renderować podstawowy widok HTML?

  4. Uwierzytelnianie aplikacji NodeJS i MongoDB przez JWT

  5. Natywne maskowanie MongoDB (trzecia metoda)