2012-06-13 16 views
5

सामान्य केस: ईजेबी (3.1) के माध्यम से अपनी सेवाओं का खुलासा करने वाला एक साधारण एप्लिकेशन - उनमें से अधिकतर स्टेटलेस सत्र बीन्स (यहां कुछ भी मजेदार नहीं) और स्विंग आधारित क्लाइंट कि, इन सेवाओं को रिमोट इंटरफेस के माध्यम से कॉल करें और उन्हें जो करना है वह करें।एक स्विंग क्लाइंट पर अपाचे शिरो - ईजेबी 3.1 प्रमाणीकरण के लिए केस-प्रमाणीकरण

सुरक्षा: मैं कॉल के इस चक्र को प्रमाणीकृत/अधिकृत करना चाहता हूं और निश्चित रूप से मेरी सेवाओं की रक्षा करना चाहता हूं। स्पष्ट जवाब सर्वर में जेएएएस और अंतर्निहित सर्वर पर किसी भी कस्टम वायरिंग सेटअप का उपयोग करना होगा। - जो संभावित रूप से आवेदन सर्वर स्वतंत्र हो सकता है तो बहुत से लोग अपाचे Shiro के बारे में बात करते हैं और वास्तव में यह एक बहुत ही सरल एपीआई और तंत्र विशेषताएं: यही कारण है कि अभी भी एक विकल्प

अपाचे Shiro है।

तकनीकी सवाल:

  1. सत्र: मेरे मामले में मैं न हेतु HTTP सत्र है - और मैं क्या समझ लिया है Shiro से कम से कम है कि मैं चारों ओर उत्तीर्ण करने की आवश्यकता सत्र आईडी के कुछ प्रकार की जरूरत है। मेरे आरएमआई/आईआईओपी में उपयोगकर्ता प्रमाण-पत्र इंजेक्शन करने का कोई अच्छा तरीका सर्वर पर कॉल करता है जो मेरे व्यवसाय एपीआई को प्रदूषित नहीं करता है?

  2. सर्वर साइड कार्यान्वयन: कुछ संसाधनों के लिए मुझे लगता है मैं माध्यम से चले गए लगता है कि मैं एक सिंगलटन EJB 3.1 सेम से 'यह संदर्भित' द्वारा एक Shiro DefaultSecurityManager लागू कर सकते हैं। कोई अन्य विचार? फिर मैं आसानी से एक इंटरसेप्टर बना सकता हूं और इसे अपने रिमोट कॉल्स में जोड़ सकता हूं - इसलिए जब मेरे रिमोट ईजेबी विधि के माध्यम से एक नई कॉल जा रही है - शिरो इंटेरेसेप्टर मेरे उपयोगकर्ता को सत्यापित करने या विशिष्ट अधिकारों की जांच करने के लिए।

कोई टिप्पणी/सुझाव/उदाहरण?

बहुत धन्यवाद

उत्तर

0

Shiro से, एक ServiceLocator पैटर्न का उपयोग करने का प्रयास करें। कंटेनरों (जेबॉस, नेटवेवर, वेबलॉगिग इत्यादि) के बीच ईजेबी का लुकअप अलग है।

एप्लिकेशन सर्वर में, सुरक्षा के कंटेनर आधारित बाधाओं का उपयोग करने का प्रयास करें (@RolesAllowed, @PermitAll, @Deny ...)। जेएएएस उपयोगकर्ता के प्रिंसिपल के साथ विषय बनायेगा, इसलिए केवल कंटेनर प्राधिकरण (@RolesAllowed, @PermitAll, @Deny ...) का उपयोग करें। जब आप एक कंटेनर से दूसरे में माइग्रेट करते हैं तो बेहतर हो सकता है।

+0

हैलो मार्सेलो, आपके उत्तर के लिए धन्यवाद - लेकिन अगर मैं किसी भी तरह से जेएएएस का उपयोग करने जा रहा हूं - तो मुझे वायरिंग शिरो का भी कोई बड़ा फायदा नहीं मिला .. मेरा विचार 100% जेएएएस पास करके और शिरो का उपयोग करके सबकुछ लागू करना था। – javapapo

+0

ठीक है। यदि आपको एप्लिकेशन को शिरो के आश्रित विक्रेता बनाने में कोई समस्या नहीं है, तो कोई समस्या नहीं है। मेरा मतलब यह है कि, यदि आप कंटेनर का उपयोग करते हैं, तो कोटेनर में पहले से ही सुरक्षा कार्यान्वयन हैं। आप शायद web.xml बाधाओं या एनोटेशन बाधाओं जैसी कुछ कार्यक्षमताओं को खो देते हैं। – Marcelo

संबंधित मुद्दे