मैं MONgoDB + जावा कॉन्फ़िगरेशन के लिए बहुत नया हूं। मैं जावा एप्लिकेशन से दूरस्थ mongodb सर्वर से कनेक्शन प्राप्त करने की कोशिश कर रहा हूँ। मैं mongotemplate के संबंध में जीएसएसएपीआई तंत्र का उपयोग करना चाहता हूं। नीचे कोड सफलतापूर्वक निष्पादित किया गया है। नीचे कोड मेरी विन्यास फाइल से है।जीएसएसएक्सप्शन: प्रदान किए गए कोई वैध प्रमाण-पत्र (तंत्र स्तर: किसी भी केर्बेरोस टीजीटी को खोजने में विफल)
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);
credential.withMechanismProperty("SERVICE_NAME", gssapiServiceName);
credential.withMechanismProperty("CANONICALIZE_HOST_NAME", true);
credentials.add(credential);
return new MongoClient(serverAddresses, credentials);
लेकिन जब मैं कोड मैं हो रही है अपवाद नीचे निष्पादित कोशिश कर रहा हूँ
DB db = mongoTemplate.getDb();
Set<String> dbCollections1 = db.getCollectionNames();
अपवाद:
GSSException: प्रदान की कोई मान्य क्रेडेंशियल्स (तंत्र का स्तर: किसी भी करबरोस TGT को ढूंढने में विफल) sun.security.jgss.krb5.Krb5InitCredential.getInstance (Krb5InitCredential.java:147) sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement (Krb पर 5MechFactory.java:122) sun.security.jgss.GSSManagerImpl.getCredentialElement (GSSManagerImpl.java:193) पर sun.security.jgss.GSSCredentialImpl.add (GSSCredentialImpl.java:427) sun.security.jgss पर पर। GSSCredentialImpl। (GSSCredentialImpl.java:62) sun.security.jgss.GSSManagerImpl.createCredential (GSSManagerImpl.java:154) पर com.mongodb.DBPort $ GSSAPIAuthenticator.getGSSCredential (DBPort.java:622) com.mongodb पर पर com पर com.mongodb.DBPort.authenticate (DBPort.java:432) पर .DBPort $ GSSAPIAuthenticator.createSaslClient (DBPort.java:593) com.mongodb.DBPort $ SaslAuthenticator.authenticate (DBPort.java:895) पर com.mongodb.DBTCPConnec पर .mongodb.DBPort.checkAuth (DBPort.java:443) tor.innerCall (DBTCPConnector.java:289) com.mongodb.DBTCPConnector.call (DBTCPConnector.java:269) पर com.mongodb.DBCollectionImpl.find (DBCollectionImpl.java:84) पर com.mongodb.DB पर । आदेश (DB.java:320) com.mongodb.DB.command (DB.java:299) पर com.mongodb.DB.command (DB.java:388) पर com.mongodb.DBApiLayer.getCollectionNames पर (DBApiLayer.java:152)
मुझे मोंगोडीबी के बारे में कुछ भी पता नहीं है, लेकिन उस त्रुटि संदेश का अर्थ है कि जीएसएसएपीआई सोचता है कि आप केर्बेरोज प्रोटोकॉल का उपयोग करना चाहते हैं - क्या यह सच है? यदि हां, तो क्या आपने GSSAPI को Kerberos सर्वर से संपर्क करने का तरीका बताया है? और * (ए) * जहां मौजूदा केर्बेरोज टिकट कैश किया गया है, या * (बी) * पासवर्ड कैसे ढूंढें और फ्लाई पर टिकट कैसे बनाएं? वैसे, यदि आप सूर्य/ओरेकल जेवीएम का उपयोग करते हैं, तो क्या आपने AES256 एन्क्रिप्शन को सक्षम करने के लिए "असीमित ताकत क्रिप्टो" नीति JARs डाउनलोड की है? –
हां, मैं केर्बेरोज प्रोटोकॉल का उपयोग करना चाहता हूं। मैंने दो सिस्टम पर्यावरण वैरिएबल सेट किए हैं 1. केआरबी 5_CONFIG = krb5.conf 2.KRB5_KTNAME = username.keytab यह मैंने कॉन्फ़िगरेशन परिप्रेक्ष्य के लिए किया है। मैं जावा वेब एप्लिकेशन से इस mongodb सर्वर तक पहुंच रहा हूँ। आशा है कि मैं आपके प्रश्नों का उत्तर प्रदान कर पाऊंगा। –
Kerstos conf (अच्छी तरह से, कुछ विवरण) को सेट करने के गंदे विवरण के लिए http://stackoverflow.com/questions/21375372/accessing-hive-metastore-using-jdbc-with-kerberos-keytab पर एक नज़र डालें (अच्छी तरह से, कुछ विवरण) –