स्प्रिंग सुरक्षा ObjectIdentity इंटरफ़ेस के माध्यम से अप्रत्यक्ष रूप से डोमेन ऑब्जेक्ट्स पर अनुदान अनुमति देता है।
तुम उल्लेख के रूप में, अब तक सामान्य मामला है कि आप बना सकते हैं या पहले डोमेन वस्तु प्राप्त है, और फिर डोमेन वस्तु के लिए एक ObjectIdentityImpl
का निर्माण है:
MyDomainObject secured = new MyDomainObject();
ObjectIdentity securedIdentity = new ObjectIdentityImpl(secured);
फिर आप पुनः प्राप्त करने के ObjectIdentity
उदाहरण का उपयोग वसंत सुरक्षा ढांचे का उपयोग कर एसीएल।
हालांकि, ऑब्जेक्ट पहचान का उपयोग करने का यह एकमात्र तरीका नहीं है। आप वस्तु के संदर्भ को पारित कर सकते हैं जो वास्तविक व्यापार वस्तु नहीं है, लेकिन इसे बनाए जाने के कुछ साधन हैं, अगर इसे बनाया गया हो।
उदाहरण के लिए, कल्पना करें कि हम फ़ाइलों को सुरक्षित करना चाहते हैं। हम java.io.File
उदाहरण के साथ ऑब्जेक्टइटीटीटी बना सकते हैं जिसे सुरक्षित किया जा रहा है। File
ऑब्जेक्ट जो पहचान में है केवल फ़ाइल का संदर्भ है - यह वास्तविक फ़ाइल नहीं है - फ़ाइल भी मौजूद नहीं हो सकती है, फिर भी हमारे पास ऑब्जेक्ट इडेंटिटी है जिसे हम सुरक्षा के बारे में कारण बता सकते हैं और एसीएल प्राप्त कर सकते हैं।
यह पैटर्न किसी भी प्रकार की डोमेन ऑब्जेक्ट पर लागू किया जा सकता है। DomainObjectPrototype
कार्यान्वयन बनाएं जो डोमेन ऑब्जेक्ट को सुरक्षित करने के लिए आवश्यक डोमेन सुविधाओं के संदर्भ में वर्णन करता है, लेकिन वास्तव में डोमेन ऑब्जेक्ट के संदर्भ की आवश्यकता नहीं है। आप इस डोमेन ऑब्जेक्ट को वास्तव में बनाने के लिए कुछ सेवा के लिए जरूरी विवरण के रूप में सोच सकते हैं।
पुनश्च: चलो मुझे कबूल है कि मैं वसंत सुरक्षा उपयोग नहीं किया है, लेकिन डिजाइन पैटर्न बहुत एक example देखने के बाद मेरे लिए स्पष्ट लगता है।
संपादित करें: मैंने इसे स्पष्ट रूप से स्पष्ट करने के लिए अपडेट किया है - जैसा कि मैंने मूल रूप से लिखा था, वस्तु वस्तु के कार्यान्वयन को जरूरी नहीं है।
आपकी प्रतिक्रिया के लिए धन्यवाद। हालांकि मैं स्पष्ट करना चाहता हूं। क्या आपका मतलब है कि अगर मैं विजेट क्लास के निर्माण को प्रतिबंधित करना चाहता हूं, तो मैं निम्न की तरह कुछ कर सकता हूं? ऑब्जेक्ट इडेंटिटी सुरक्षित IDentity = new ObjectIdentityImpl (Widget.class, विजेट।RESERVED_CLASS_ID); मैं तब जांच करूंगा कि कुछ सिड को बनाने की अनुमति की अनुमति है या नहीं। –
जब एक्सेस नियंत्रण विजेट क्लास के विशिष्ट उदाहरणों पर निर्भर नहीं है, तो आप ऐसा कर सकते हैं। यदि आपको इंस्टेंस-विशिष्ट नियंत्रण की आवश्यकता है, तो विजेटप्रोटोटाइप क्लास बनाएं जिसमें एक्सेस नियंत्रण को परिभाषित करने के लिए आवश्यक डोमेन विशेषताएँ शामिल हों। – mdma