मेरे पास एक एपीआई है जिसे मैं आरईएसटी के माध्यम से उजागर कर रहा हूं और मैं इस बारे में विचार कर रहा हूं कि प्राधिकरण प्रतिबंध कहां रखा जाए।
मैंने पढ़ा है कि सेवा परत को सुरक्षित करने के बारे में एक सर्वोत्तम अभ्यास है क्योंकि यह काम कर रहा है और आपको नहीं पता कि यह कहां जा रहा है, लेकिन मुझे यकीन नहीं है कि सम्मान के साथ सबसे अच्छा अभ्यास क्या है डब्ल्यूएस परत।
एक विचार मेरे पास है कि मुझे सेवा परत पर प्राधिकरण का एक बहुत अच्छा अनाज मॉडल और डब्ल्यूएस परत पर प्राधिकरण के बहुत मोटे अनाज मॉडल की आवश्यकता है क्योंकि एक तरफ डीआरवाई सिद्धांत को तोड़ने को कम करने के लिए अभी भी कुछ है गहराई में रक्षा की धारणा।स्प्रिंग सुरक्षा सेवा परत, वेब-सेवा परत या दोनों को सुरक्षित करती है?
उदाहरण:
Users
संसाधन के लिए वहाँ है एक UserWS
और एक UserService
। व्यवस्थापक उपयोगकर्ताओं को बना/अपडेट/हटा सकते हैं और उपयोगकर्ता अन्य उपयोगकर्ताओं के बारे में पढ़ सकते हैं।
UserWS
मानना %root%/users
है ROLE_USER
प्राधिकरण के साथ उस यूआरएल के लिए intercept-url
परिभाषित करेगा जो केवल कहता है कि आपको वहां पहुंचने के लिए एक उपयोगकर्ता होना है, लेकिन सेवा परत स्वयं प्रासंगिक विधियों के लिए विशिष्ट प्राधिकरण निर्दिष्ट करेगी।
अन्य विकल्प हैं:
प्लेस दोनों सेवाओं और WS-
समर्थक आप जितनी जल्दी हो सके घुसपैठियों के रूप में बाहर फ़िल्टर कर देंगे पर एक ही प्राधिकरण आवश्यकताओं (और उदाहरण के लिए बचाने के लिए मापदंडों आप वसंत MVC उपयोग कर रहे हैं)
कांग्रेस विन्यास के दोहराव के रूपांतरण एक रखरखाव मुद्दा है और त्रुटियों की संभावना => सुरक्षा समस्याप्लेस authorizati है WS
कांग्रेस से आ रही सेवा परत विभिन्न संदर्भों से इस्तेमाल किया जा सकता है यदि WS- पर आवश्यकताओं पर
समर्थक जितनी जल्दी हो सके फ़िल्टर केवल सेवा-
परप्लेट प्राधिकरण आवश्यकताओं प्रो- कोई दोहराव
अनुमति देने के कांग्रेस उपरि "साफ" अयोग्य अनुरोध सेवा परत
वास्तव में विकल्पों के बारे में किसी भी राय जानना चाहेंगे करने के लिए आने के लिए
आपके उत्तर के लिए धन्यवाद, लेकिन जैसा कि मैंने कहा, अगर मेरे पास दोनों पर समान अधिकार हैं तो यह दोहराव है और त्रुटियों (इसलिए सुरक्षा देयता) के लिए प्रवण है। मान लीजिए कि मैं सेवा परत को एनोटेट करता हूं, आपको क्या लगता है कि मुझे डब्ल्यूएस पर रखना चाहिए और क्यों? धन्यवाद – Ittai
आईएमएचओ आपको सिर्फ एक ही सेवा की आवश्यकता है जिसमें तर्क है और उस सेवा के लिए यूआई प्रतिनिधि और डब्ल्यूएस प्रतिनिधि है। इस तरह आपको केवल ठोस सेवा को एनोटेट करने की आवश्यकता है। आम तौर पर, यदि आप डुप्लिकेशंस नहीं चाहते हैं तो आपको वास्तविक तर्क रखने वाले घटक को सुरक्षित करना होगा। – Simeon