Transcript for:
स्प्रिंग बूट सुरक्षा की प्रक्रिया

हेलो एप्रीवर्न कैसे हैं आप माउच कर रहे होंगे, यार spring boot में projects तो काफी लोग बनाते हैं और अगर आप spring boot में projects बनाते हो तो उसमें security का एक बहुत ही ज़्यादा important role होता है, security सब लोग लगाते हैं भाई, चाहे authentication के लिए, चाहे authorization के लिए login, logout तो बनाते हो अगर आपको security spring boot में कुछ defined steps हैं उन steps को follow करना होता है और कुछ हमें implementations provide करने होते हैं कुछ configurations करना होता है और हमारी spring security चालो हो जाती है, लेकिन लेकिन लेकिन, बहुत सारे हमारे लोग ऐसे हैं जो स्प्रिंग सिगरिटी इंप्लीमेंट तो कर लेते हैं कुछ स्टेप्स को फॉलो करके बट उनको इंटरनल वर्किंग पता ही नहीं होती कि स्प्रिंग सिगरिटी कैसे ऑथेंटिकेशन करता है तो इंटरनली कैसे स्प्रिंग ले रहा है कौन सी क्लास का ऑब्जेक्ट कॉल हो हो रहा है कौन सा मैथड कॉल हो रहा है सब चीज हम एक करके अपनी आपको सुद्ध देखेंगे डिबग करके और इस वीडियो में आप यह देखने वाले हो कि कैसे हम लोग डिबग करके चीजों को समझ सकते हैं डीप डाइव किसी चीज में कर चाहिए अब इस वीडियो को सबसे पहले इस वीडियो को दो पार्ट में रखें सबसे सबसे पहले हम लोग थेरिटिकली समझते हैं डायग्राम के थ्रू उसके बाद हम लोग टैक्टिकली का करेंगे हमारे पास एक प्रोजेक्ट है जिसके अंदर सिंपली हम ऑफेंटिकेशन कर जेडवेट के थ्रू उस प्रोजेक्ट को यूज करके हम लोग डिपर करके देखते हैं कि कैसे काम करता है सिक्योरिटी तो आपको क्या करना है ऐसे ही वीडियो के लिए आपको बस चैनल को सब्सक्राइब करना है और लाइक करना है आप कहां से अपना नाम आप कमेंट करने में जरूर दिए क्योंकि यार हम इस वीडियो का कमेंट टारगेट रखते हैं आपको जल्दी अगर आपको ऐसे वीडियो साथ इस इस वीडियो का लाइक रखते हैं 1000 लाइक जल्दी से आप करा दिए हम ऐसे कौन से टाप के लिए लाते हैं चले वीडियो को अब स्टार्ट करते हैं चले तो हम सबसे पहले यहां पर समझते हैं कि इंटरनल वर्क कैसे काम करता है इसके लिए हमारे पास यहां पर डाइग्राम है जो कि मैंने आपके मेहनत करके प्रिंटिव ने प्रोजेक्ट के अंदर कैसे लगाते हो स्प्रिंटिव अगर आपके पास कोई प्रिंटिव का प्रोजेक्ट तो स्प्रिंटिव लगाना बहुत ही ज्यादा हथ से ज्यादा आसान है देखते हैं कैसे लगाते हैं आपको करना सिंपली आपको प एक डिपेंडेंसी बस ऐड करनी है इसका नाम स्प्रिंग बूट स्टार्टर सिक्योरिटी हीरी यह डिपेंडेंसी जैसे आप यह डिपेंडेंसी ऐड करते हो गए स्प्रिंग सिक्योरिटी चलू हो जाती है आपको इसके अलावा कुछ भी करने की तरह नहीं बस इतना तग इस प्रिंट ऑटो कंफिग्रेशन स्प्रिंग सिगरिटी कर देगा आपको कुछ करने की जरूर भी नहीं है सिंगल लाइन आफ को लिखने की जरूर आपकी चीजें सब ऑफेंटिकेट हो जाएंगे सब चीज हो जाएगा लेकिन अब यहां पर क्या होता रहे हैं या फिर हम चाहें कि भाईया हम चेयर जेड़ यूज करें तो उस केस में हम कॉन्फिक्रेशन को चेंज कर सकते हैं और उसके लिए spring security ने बहुत सारी classes दी है और मैंने यहाँ पर सब configuration कर रखा है बट आपको कुछ भी जानने की जरूरत नहीं इसकी videos मैंने already बना के रखा है आपको tension नहीं की जरूरत नहीं है तो करेंगे कैसे configuration यह अभी नहीं समझना यह अभी समझना है कि काम कैसे करता है कि अनुखे करने के बहुत सारी वीडियो में अलड़ी बना चुका हूं ठीक है तो आपको क्या करना समझिए तो सब्सक्राइब कर दिया और काम कैसे प्रोडक्ट करा यह समझ लीजि प्रोजेक्ट है हमें का करना सिंपली ऑफेंटिकेशन को चेक करने के लिए हमें करने के लिए हम क्या करेंगे सब्सक्राइब यूज करें यूजर की आंड हमारे पास एप यह अपडेट की और अपडेट की प्रेस करें और जैसे मैंने अपने लॉग इन करेंगे ऑफेंटिकेट करेंगे खुद को कि भाई आप मैं वह यूजर हूं और मैं हमारे पास इमेल आईडी पासवर्ड को और एक ऑफेंटिकेट है हम खुद को अधिकत करेंगे दिन हम यह परमेशन लेंगे ऑथराइज होंगे इस इवार को एक्सेस करने के लुट ल� गया बैकएंड में यहां पर इमेल आईडी पासवर्ड आया और आपके बैकएंड ने क्या उस इमेल आईडी पासवर्ड को चेक किया कि क्या इमेल आईडी पासवर्ड सही है तब पहले तो इसे मेल आईडी इस यूजरनेम का कोई बंदा है बैकएंड में अगर इसकी हम इसे ऑथेंटिकेट कर लेंगे और उसने क्या एक टोकन हमें जनरेट कर दिया जब टोकन जनरेट कर दिया पर फिर से बात समझिएगा जब टोकन इसने जनरेट कर दिया पर फेक्ट जैसे उपयोग हो गया अब यह ऑफेंटिकेशन बैकेंड में कैसे हुआ होगा यह हमें समझना है मतलब यह ऑफेंटिकेशन कैसे होगा कैसे उसने वेरिफाई किया होगा अगर हो सकता है कि आपने यहां पर गलत डाल दिया हो विजरनेम एंड फिर से दिल्ली किया होगा तो आप देखोगे इनवैलिड कि सेंट पर क्लिक किया सब देखोगे इनवेलिड इजर ने पॉजिट मतलब इनवेलिड यहां पर मैसेज आ रहा हमें मैसेज बिल रहा है गलर डाल दिया और अगर सही डाल दिया तो हमें ऑथंटिकेट होकर हमें मिल जाएगा यह देखिए जेडब्री टोकेंट यह और हम ऑथराइज्ड हैं पर्टिकुलर ऑपरेशन परफॉर्म करने के लिए जो हमें प्रमिशन दी गई हैं अगर मैं नॉर्मल दोनों तो नॉर्मल वाले सारे एंड पॉइंट्स को एक्सेस कर सकते हैं बट यह कैसे हुआ हाउ डस इट वर्क्स तो होता क्या है कि बात को समझिए गाइस होता क्या है कि स्प्रिंग अ बूट के अंदर जब आप security अप्लाई करते हो तो spring security पूरा-पूरा spring security काम करता है filters पे ठीक है तो आपने क्या किया आपने जब स्प्रिंग सेक्योरिटी अप्लाई किया तो आप उसको ऐसा समझो कि आपने कुछ फिल्टर सप्लाई कर दी है फिल्टर का मतलब होता है कि जो मेन कॉंटेंट है आपका जैसे यह आपके फिल्टर है तो मेन जो एपिआई है उनसे इसको थोड़ा सा हम ऐसा समझ लेते हैं कि सब्सक्राइब यह आपकी एपिआई है और यह एपिएइस बेसिकली बनाई जाती है कि सर्वलेट की हब से किसके सर्वलेट की हब से इपिएइस को बनाया जाता है यह अब फिल्टर्स करते हैं फिल्टर्स एक्शन इससे पहले आ जाता है मतलब किसी रिक्वेस्ट तो अगर कोई रिक्वेस्ट आ रही है तो सबसे पहले यह रिक्वेस्ट फिल्टर के पास जाएगी किसके पास जाएगी फिल्टर के पास जाएगी यहां पर आज रिक्वेस्ट फिल्टर अपना प्री प्रोसेसिंग परफॉर्म करें क्या परफॉर्म करेंगे प्री प्रोसेसिंग प्री प्रोसेस करेंगे इस रिक्वेस्ट को ठीक है उसके बाद अगर आपको सही रहा तो क्या कर सकता है यह रिक्वेस्ट यह फिल्टर है गाइस यह इस रिक्वेस्ट को वापस यहां पर बेश सकता है सॉरी इसको बंद करो यार वह डेसिट फैन यहां पर आज आगे इसको फॉरवर्ड कर देगा देट मिस्स डू फिल्टर कॉल करके इसको रिक्वेस्ट को फॉरवर्ड कर देगा एफट डब्लू लिख देता और अगर जो भी करना होगा यह आपकी चलने से पहले यहां पर वापस भी कर सकते हैं प्रोसेसिंग कर सकते हैं यहां पर काम कर सकते हैं आप समझ गए तो यहां पर हमने स्प्रिंग सिक्योरिटी लगाया तो बहुत सारे मैंने फिल्टर लगा दी अब फिल्टर बहुत सारे होते हैं जैसे ऑफेंटिकेट करने के लिए फिल्टर दें और आपने नाम सुनाओगा उजने आपके पासवर्ड रिक्वेस्ट में आ रहा है तो फिल्टर पासवर्ड फिल्टर हम लोग करने ऐसा करके बहुत सारे फिल्टर फिल्टर फिल्टर डिटेल में नहीं जाते हैं बट हमने यह देखो एक हमने फिल्टर बनाया है जेडवी ऑथेंटिकेशन फिल्टर यह देखिए कि यह फिल्टर बनाया और इसको मैंने स्प्रिंग सिक्रियोटी में ऐड किया कि भाईया यह फिल्टर एक्सवीट हो जब यह आप एड फिल्टर बिफोर यह फिल्टर एक्सवीट हो हमारे उजन पासवर्ड ऑथेंटिकेशन फिल्टर मदद उजन पासवर्ड अ वह जब टोकेंट को भी चेक कर रहा है मतलब ऑफेंटिकेशन से पहले भी पहले ही काम कर रहा है तो इस तरह से फिल्टर को बना सकते हैं चलो भाई अब हमारे बहुत सारे फिल्टर बन गए यह एक्ट्री ऑफेंटिकेशन को चेक करने के लिए जैसे आप ऑफराइज हो की नहीं टोकेंट आ रहा है कि नहीं तो यह फिल्टर से यहां पर एक्सग्रीट हो जाते चलो भाई अब वह थी ऑफेंटिकेशन रिक्वेस्ट और यह रिक्वेस्ट बनाते हैं हम लोग विद थे हेल्प आप ऑफेंटिकेशन एक इंटरफेस है उसी की इंप्लेमेंटेशन हम लोग यूज करते हैं यह ऑफेंटिकेशन बनाने के लिए यह ऑटोमेटिक बन आप देखोगे यह रिक्वेस्ट आई और हम लोगों ने देखो और लॉग इन यह लॉग इन का कंट्रोलर है तो हम लोग मेथड कॉल करने के लिए रिक्वेस्ट से ईमेल आईडी पासवर्ड निकाला है उस अनेम पासवर्ड बेसिकल निकाला है और हमने दूर ऑथेंटिकेट मेथड अपने ही सी क्लास का यह मैथड कॉल किया और हमने यहां पर देखो यूजर ने कि इसी ऑफेंटेशन की इंप्लेमेंटेशन है इंटरफेस की इंप्लेमेंटेशन है मतलब इसके पास क्या है इनफॉर्मेशन है इमेल आईडी पासवर्ड हमने डाल दिया तो बिस्किल यह ऑफेंटेशन है इसके पास यूजर आईडी और इमेल ऑफेंटेशन की इंफॉर्मेशन कर सकते होगी तो हमारे रिक्वेस् यह रिक्वेस्ट यह ऑथेंटिकेशन रिक्वेस्ट ऑथेंटिकेशन फॉरवर्ड कर दिया जाता है ऑथेंटिकेशन मैनेजर के पास ऑथेंटिकेट करने के लिए आगे प्रोसेस का होता है बस समझ यह कैसा बंदा है मैं क्या करता हूं मैं इन आपको एज आप मेरे घर में कोई और है मेरे डैडी है मेरे पापा है पिता जी है तो उनका कुछ और काम है तो यह मैं समझता हूं कि स्प्रिंग्स क्रिटी के सारे फैमिली मेंबर्स है तो सबसे विलाइट रिक्वेस्ट एक आई एक बंदा है जिसके सामिल आईडी पासवर्ड है औ ऑथेंटिकेशन मैनेजर को गाइस ऑथेंटिकेशन मैनेजर अब ऑथेंटिकेशन मैनेजर एक इंटरफेस है मैं दिखा दूंगा जो मैंने इस कलर का बनाया है वह ऑथेंटिकेशन वह इंटरफेस ही है जो भी मैंने बनाया इंटरफेस है लेकिन इसकी इंटरनी कॉल तो भाई इसी का कह सकते हो कि मैथड होगा बट जब एक्सएक्ट बॉडी होगी तो इसकी कोई ना कोई नहीं है इसका नाम प्रोवाइडर मैनेजर यह इसकी इंप्लेमेंटेशन क्लास है तो यह इसको इंप्लेमेंट कर रहा होता है तो एक्ट्री ऑथेंटिकेट मेथड ऑफेंटिकेशन मैनेजर का चल रहा होता बट बॉडी प्रोवाइडर मैनेजर की तो यहां पर मैंने इंप्लेमेंटेशन क्लास के बात ही नहीं कि आप समझे कोई ना कोई और अधिकेशन की रिक्वेस्ट चली जाएगी और अधिकेशन मैनेजर के पास अब मैनेजर क्या करेगा सबसे इंपोर्टेंट का मैनेजर क्या करता है मैनेजर फाइंड अप्रोप्येट प्रोवाइडर टू ऑथेंटिकेट इसका सिर्फ यही काम है कि हमारे पास बहुत सारे लड़क जो डाटा बेस में जो डेटा है इसको मैच करना कि भाईया ऑफेंटिकेट हो रहा है कि मैच करना डाटा इनकमिंग मैच डाटाबेस ठीक है मैच करना यह समझ गए तो यह सारे अब बहुत सारे हमारे पास आपने डिशन प्रोवाइडर हो सकते हैं जैसे फॉर ग्राम पल आप डाटाबेस से ऑफेंट करें तो डाउन ऑफेंटिकेशन प्रोवाइडर है अगर आप और अधिकेशन मैनेजर फाइंड करेगा कि हमारे रिक्वेस्ट के हिसाब से कौन सा प्रोवाइडर सूट कर रहा है मतलब किस प्रोवाइडर को हमें चलाना है तो अधिकेशन मैडर मैनेजर का यह काम है कि वह टाइप रिक्वेस्ट एक विकल्प इसको मिल और बेस्ट ऑन देट ऑफिसर रिक्वेस्ट की हमें फाइंड करना है अप्रोपिएट ऑफिसर प्रोवाइडर तो सपोस कि इसने ढूंढ करके और अधिकेशन मैजर ने ढूंढ करके और ऑफिसर प्रोवाइडर इसने फाइनलाइज किया तो यह ऑथेंटिकेशन प्रोवाइडर क्या करेगा यह ऑथेंटिकेशन प्रोवाइडर ऑथेंटिकेट करेगा इनकमिन प्रोवाइडर और यह ऑथेंटिकेशन रिक्वेस्ट को फॉरवर्ड कर देगा यहां पर ऑथेंटिकेशन का ऑप्जेक्ट आ जाएगा तो यहां पर ऑथेंटिकेशन यह ऑथंटिकेट करेगा वह अपनी केट करने के लिए क्योंकि ऑथंटिकेशन है तो उसके पास यह पासवर्ड है और ऑलडीज के पास आ गया और यह ऑथंटिकेट करने के लिए इसको डाटाबेस से भी डिटेल चाहिए तो यह ऑथंटिकेशन प्रोवाइडर का करेगा ठीक है वह डेटा अलड़ी आ चुका है और यह क्या करेगा डेटाबेस से यूजर को नेम को फेच करने के लिए यह उसका यह डेटिएल सर्विस और यूजर डेटिएल सर्विस क्या करेगी यह उसका यह यूजर रेपोजिटरी ठीक है क्योंकि और थे प्रोवाइडर कहेगा कि हेलो यूजर डेटिएल सर्विस अ कि यह है हलो इज डिटेल सर्विस मुझे जो हमारे पास यूजर नेम है वह इजर नेम वाला यूजर दे दो और यह इज डिटेल सर्विस इजर रिपोजिटरी से दिपोर्टेडी की भाईया डाटाबेस से हमें इस यूजर नेम हमारा यूजर में दे दो तो यह डाटाबेस उठाकर वह यूजर दे देगा और यह उठा इसके पास एक method होता है, user detail service के पास, load user by username और जैसे ही ये वाला load user by username call करेगा, load user by username user repository को call करेगा, और data user आ जाएगा और user, अगर नहीं आएगा by default नहीं मिला तब तो हम एक्सेप्शन थ्रो कर देंगे कि वैट क्रिडेंशियल यह नॉट फाउंड और यह यहां पर आ जाएगा अब है तो यह करेगा यह ऑथेंटिकेट सक्सेस कर देगा और फिर ऑफिस सेक्यूरिटी कांटेक्स में डाइटर आपका स्टोर context में जाकर सेट हो जाएगा विद्धा लव सेक्यूटी कॉंटेक्स्ट होल्डर के पास एक सेट ऑथंटिकेट नामक मेथड होता है उस पर हम ऑथंटिकेशन को सेट कर सकते हैं तो यह पूरी कहानी होती है यह पूरा फ्लो होता है अब थोड़ा सा इसको हम लोग समझ लेते हैं प