स्प्रिंग बूट 3.0 के साथ स्प्रिंग सुरक्षा भूमिका आधारित प्रमाणीकरण और प्राधिकरण कार्यान्वयन

May 08 2023
नमस्कार शिक्षार्थियों, यहाँ हम स्प्रिंग बूट के साथ स्प्रिंग सुरक्षा कार्यान्वयन के बारे में जानने वाले हैं। वसंत सुरक्षा आम हमलों के खिलाफ प्रमाणीकरण, प्राधिकरण और सुरक्षा प्रदान करती है।

नमस्कार शिक्षार्थियों, यहाँ हम स्प्रिंग बूट के साथ स्प्रिंग सुरक्षा कार्यान्वयन के बारे में जानने वाले हैं। वसंत सुरक्षा आम हमलों के खिलाफ प्रमाणीकरण, प्राधिकरण और सुरक्षा प्रदान करती है।

प्रमाणीकरण - प्रमाणीकरण यह है कि हम किसी विशेष संसाधन तक पहुँचने का प्रयास करने वाले उपयोगकर्ता की पहचान को कैसे सत्यापित करते हैं, एक बार प्रमाणीकरण हो जाने के बाद हम पहचान जानते हैं और प्राधिकरण कर सकते हैं।

प्राधिकरण - प्राधिकरण का अर्थ है विशेष संसाधन/यूआरएल तक पहुँचने की अनुमति देना।

वसंत सुरक्षा को लागू करने के लिए कदम

चरण 1: POM.XML में स्प्रिंग सुरक्षा निर्भरता जोड़ें

चरण 2: एक विन्यास वर्ग बनाएँ, प्रमाणीकरण और प्राधिकरण विधियाँ जोड़ें।

@EnableWebSecurity हमारे एप्लिकेशन के लिए डिफ़ॉल्ट सुरक्षा कॉन्फ़िगरेशन प्रदान करता है। डिफ़ॉल्ट सुरक्षा HTTP सुरक्षा फ़िल्टर और सुरक्षा फ़िल्टर श्रृंखला दोनों को सक्रिय करती है और हमारे समापन बिंदुओं पर बुनियादी प्रमाणीकरण लागू करती है।

@Configuration स्प्रिंग बूट को बीन परिभाषाओं के लिए कक्षा को स्कैन करने और उन्हें एप्लिकेशन संदर्भ के साथ पंजीकृत करने के लिए कहता है।

प्रमाणीकरणप्रदाता () विधि का उपयोग उपयोगकर्ता नाम, पासवर्ड, भूमिकाओं जैसे सभी उपयोगकर्ता विवरणों को संग्रहीत करने के लिए किया जाता है।

SecutityFilterChain () विधि यहाँ संसाधनों को अधिकृत करने के लिए है

.requestMatchers("/products/welcome","/products/new").permitAll() सभी उपयोगकर्ताओं को एक्सेस देने के लिए है, कोई भी उपयोगकर्ता उन दो url तक पहुंच सकता है।

requestMatchers(“/products/**”).authenticated() प्रमाणित उपयोगकर्ताओं को एक्सेस देना है।

चरण 3: भूमिका आधारित प्राधिकरण लागू करें

@PreAuthorizeएनोटेशन का उपयोग एक अभिव्यक्ति को निर्दिष्ट करने के लिए किया जाता है जिसका मूल्यांकन विधि निष्पादित होने से पहले किया जाएगा। यदि अभिव्यक्ति सत्य का मूल्यांकन करती है, तो विधि को निष्पादित किया जाता है अन्यथा, AccessDeniedException को फेंक दिया जाता है।

विधि getAllProducts()केवल उपयोगकर्ताओं द्वारा ROLE_USERभूमिका के साथ निष्पादित की जा सकती है, जबकि विधि को भूमिका getProductById()वाले उपयोगकर्ताओं द्वारा निष्पादित किया जा सकता है ।ROLE_ADMIN

कार्यान्वयन का परीक्षण

कार्यान्वयन का परीक्षण करने के लिए नमूना कोड जोड़ा गया।

उपयोगकर्ता प्रमाण-पत्र देने के बाद उपयोगकर्ता उपयोगकर्ता एंडपॉइंट तक पहुंचने में सक्षम हो सकता है

जब उपयोगकर्ता उपयोगकर्ता क्रेडेंशियल के साथ व्यवस्थापक समापन बिंदु तक पहुंचने का प्रयास करता है, तो त्रुटि पृष्ठ प्रदर्शित होगा

नोट: यदि आप इस कार्यान्वयन के कार्यशील जीथब कोड चाहते हैं तो कृपया मुझे फॉलो करें और अपनी ईमेल आईडी पर टिप्पणी करें। मैं आपके ईमेल पर सोर्स कोड लिंक भेजूंगा।

भाग 2: JWT के साथ वसंत सुरक्षा प्रमाणीकरण और प्राधिकरण

अन्य स्प्रिंग बूट अवधारणाओं के लिए लिंक देखें:

स्प्रिंग एओपी ट्यूटोरियल

स्प्रिंग बूट लॉगिंग ट्यूटोरियल

स्प्रिंग बूट में केंद्रीकृत विन्यास

सबसे अधिक इस्तेमाल किया जाने वाला हाइबरनेट एनोटेशन

साक्षात्कार के लिए महत्वपूर्ण माइक्रोसर्विसेज डिज़ाइन पैटर्न