2012-01-19 10 views
6

में इंस्टेंस लेवल एक्सेस कंट्रोल मुझे वास्तव में एक लचीला सुरक्षा ढांचा अपाचे शिरो मिला। मैंने शिरो का उपयोग करके प्रमाणीकरण और प्रमाणीकरण सफलतापूर्वक कार्यान्वित किया।अपाचे शिरो

ढांचे की आकर्षक सुविधाओं में से एक उदाहरण आधारित सुरक्षा है। मैंने अभी शिरो वेबसाइट से उदाहरण कॉपी किया है।

डेटाबेस में निम्न अनुमतियां संग्रहीत हैं।

printer:query:lp7200 
printer:print:epsoncolor 

निम्नलिखित कोड जांचें कि किसी दिए गए प्रिंटर उदाहरण के लिए, वर्तमान प्रमाणीकृत उपयोगकर्ता की अनुमति है या नहीं।

if (SecurityUtils.getSubject().isPermitted("printer:query:lp7200") { 
// Return the current jobs on printer lp7200 
} 

मेरा सवाल यह है कि "क्या यह डेटाबेस में अनुमतियों को कैसे संग्रहीत किया जाता है?" क्या इंस्टेंस आधारित अनुमतियों को स्टोर करने का कोई बेहतर तरीका है?

कृपया मुझे बताएं।

धन्यवाद

उत्तर

9

आप इस जानकारी को कैसे स्टोर करते हैं पूरी तरह से आपके ऊपर है। आपका Realm कार्यान्वयन आपके द्वारा उपयोग किए जाने वाले प्रारूप में अनुमति डेटा को निकालने और अनुमति डेटा निकालने के लिए ज़िम्मेदार है।

कुछ लोग उन्हें तारों के रूप में सीधे स्टोर करते हैं (जैसे आपके उदाहरण में दिखाए गए), अन्य लोग उन्हें एक समर्पित तालिका में संग्रहीत करते हैं (उदाहरण के लिए यदि आरडीबीएमएस का उपयोग करते हैं) (उदा। अनुमति_ प्रकार, लक्ष्य, क्रिया कॉलम)। आप अनुमति इकाइयों को भूमिकाओं या सीधे उपयोगकर्ताओं या समूहों को जो समूहों को सौंपा गया है, से जोड़ सकते हैं - हालांकि यह आपके आवेदन के लिए समझ में आता है।

आपके संग्रहण विकल्प पूरी तरह से आपके ऊपर हैं। आप डेटा को पूरा करते हैं, हालांकि आप उम्मीद के अनुसार Realm.isPermitted(...) संचालन कार्य सुनिश्चित करना चाहते हैं।

इसके बजाय सीधे Realm.isPermitted(...) तरीकों को लागू करने की

, कई लोग इसे और अधिक सुविधाजनक सार AuthorizingRealm वर्ग उपवर्ग और doGetAuthorizationInfo विधि ओवरराइड और AuthorizationInfo उदाहरणों कि अनुमति अभ्यावेदन समर्थन वापस जाने के लिए लगता है।

कि विधि में, आप अपने डेटासंग्रह क्वेरी सकता है, डेटा AuthorizationInfo उदाहरणों में लौटे का अनुवाद, और आपका काम हो जाएगा (प्राधिकरण कैशिंग को सक्षम करने के लिए मत भूलना - आप एक बड़े प्रदर्शन लाभ देखेंगे)।

RealmisPermitted तरीकों ओवरराइड करना, आदि केवल आवश्यक है कि आप अधिक क्वेरी का बहुत विशिष्ट नियंत्रण चाहते हैं तो

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

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