2012-10-13 31 views
5

मैं पहली बार अपने ऐप में ओपनआईडी प्रमाणीकरण के साथ खेल रहा हूं। मैं चुनिंदा प्रदाता के खिलाफ उपयोगकर्ता को सफलतापूर्वक प्रमाणीकृत कर सकता हूं, लेकिन मुझे नहीं पता कि जावा ईई सर्वर पर उपयोगकर्ता को सही तरीके से कैसे लॉगिन किया जाए, ताकि ऐसा लगता है कि उपयोगकर्ता लॉग इन था। फॉर्म-आधारित लॉगिन। मैं सर्वलेट 3.0 login का उपयोग कर सकता हूं लेकिन यह उपयोगकर्ता नाम/पासवर्ड जोड़ी लेता है और मेरे पास ओपनआईडी का उपयोग करते समय पासवर्ड नहीं हैं।जावा ईई 6 एप्लिकेशन में ओपनआईडी - उपयोगकर्ता के लिए प्रिंसिपल ऑब्जेक्ट कैसे प्राप्त करें

मैं Principal ऑब्जेक्ट प्राप्त करने और isUserInRole विधि आदि का उपयोग करने में सक्षम होना चाहता हूं। क्या मुझे कुछ याद आ रही है? मैं इस ऐप को जेबॉस 7.1 पर चला रहा हूं, लेकिन मुझे लगता है कि ऐसा करने का एक आम तरीका होना चाहिए। या शायद मुझे कुछ और सब कुछ याद आ रहा है Principal और ओपनआईडी का उपयोग करते समय उपयोगकर्ता भूमिका अलग-अलग होती है?

+0

कोई टिप्पणी, उत्तर कृप्या? – grafthez

उत्तर

1

मुझे लगता है कि ऐसा करने का एक आम तरीका होना चाहिए।

वास्तव में वास्तव में है। आपको एक तथाकथित जैस्पी प्रमाणीकरण मॉड्यूल बनाने की आवश्यकता है। वहां पहले से ही एक OpenID के लिए उपलब्ध है, देखें:

मैं सर्वलेट 3.0 लॉगिन इस्तेमाल कर सकते हैं लेकिन यह उपयोगकर्ता नाम/पासवर्ड जोड़ी लेता है और मैं पासवर्ड जब की जरूरत नहीं है ओपनआईडी का उपयोग करना

यह सही है। इसके बजाय आपको सर्वलेट 3.0 authenticate विधि को कॉल करने की आवश्यकता है। चूंकि login उपयोगकर्ता नाम/पासवर्ड से दृढ़ता से जुड़ा हुआ है, तो आपने जावा ईई 7 में अपवाद फेंक दिया होगा जब आपने अपना खुद का ऑथ मॉड्यूल परिभाषित किया होगा! (जावा ईई 6 में यह अनिश्चित है कि क्या होता है, लेकिन यह आमतौर पर काम नहीं करता है)।

जावा ईई में ओपनआईडी-जैसे ऑथ मॉड्यूल बनाने के कुछ और उदाहरणों के लिए, उस परियोजना के पहले संस्करण का उपयोग करके अपनी खुद की परियोजना OmniSecurity और an actual application देखें। (दुर्भाग्यवश कोड का पालन करना थोड़ा मुश्किल है क्योंकि इसे एक जेएसपीआईसी सैम के साथ काम करने के लिए सीडीआई प्राप्त करने के लिए एक जटिल और जटिल कामकाज की आवश्यकता है, लेकिन उम्मीद है कि यह आपको सामान्य पैटर्न को देखने की अनुमति देता है)