क्या कोई जानता है कि जावा जीएसएस-एपीआई का उपयोग करके कुंजी वितरण केंद्र (केडीसी) से सर्विस टिकट कैसे प्राप्त करें?जीएसएस-एपीआई के माध्यम से केर्बेरोज सेवा टिकट कैसे प्राप्त करें?
मेरे पास एक मोटी-क्लाइंट-एप्लिकेशन है जो पहले टीएटीटी को टिकट कैश से लाने के लिए Krb5LoginModule का उपयोग करके जेएएएस के माध्यम से प्रमाणित करता है (पृष्ठभूमि: विंडोज उदा। केर्बेरोज कार्यान्वयन का उपयोग करता है और टिकट को सुरक्षित मेमोरी क्षेत्र में टिकट देने के लिए स्टोर करता है)। LoginManager से मुझे विषय वस्तु मिलती है जिसमें टीजीटी होता है। अब मुझे आशा है कि जब मैं अपनी सेवा के लिए एक विशिष्ट जीएसएस क्रेडेंशियल ऑब्जेक्ट बनाउंगा, तो सर्विस टिकट को विषय के निजी प्रमाण-पत्रों में भी रखा जाएगा (मैंने वेब में कहीं और पढ़ा है)। प्रदान की कोई मान्य क्रेडेंशियल्स (तंत्र का स्तर:: किसी भी करबरोस TGT को ढूंढने में विफल)
// Exception handling ommitted
LoginContext lc = new LoginContext("HelloEjbClient", new DialogCallbackHandler());
lc.login()
Subject.doAs(lc.getSubject(), new PrivilegedAction() {
public Object run() {
GSSManager manager = GSSManager.getInstance();
GSSName clientName = manager.createName("clientUser", GSSName.NT_USER_NAME);
GSSCredential clientCreds = manager.createCredential(clientName, 8 * 3600, createKerberosOid(), GSSCredential.INITIATE_ONLY);
GSSName serverName = manager.createName("[email protected]", GSSName.NT_HOSTBASED_SERVICE);
manager.createCredential(serverName, GSSCredential.INDEFINITE_LIFETIME, createKerberosOid(), GSSCredential.INITIATE_ONLY);
return null;
}
private Oid createKerberosOid() {
return new Oid("1.2.840.113554.1.2.2");
}
});
दुर्भाग्य से मैं एक GSSException मिल: तो मैं निम्नलिखित की कोशिश की है।
@ माइकल: आपके योगदान के लिए धन्यवाद। जैसा कि आप देख सकते हैं मैंने इसे कुछ समय पहले लिखा था इसलिए मुझे सटीक विवरण याद नहीं हैं, लेकिन मुझे पूरा यकीन है कि यह सिर्फ एक उदाहरण के रूप में था। इस जवाब को बेहतर बनाने के लिए आपको क्या लगता है? –
केर्बेरोस के साथ सूर्य एसएसओ ट्यूटोरियल के लिए अपने लिंक की जांच करें और आंकड़े 6 पर एक नज़र डालें। मैंने जिस लूप को लिखा है वह है। –
मुझे लगता है कि मैंने लूप को शामिल नहीं किया क्योंकि मुझे पता नहीं चला कि readToken() और sendToken (...) विधियों को क्या करना चाहिए। HTTP 'readToken' के संदर्भ में –