Spring Security 6 और JWT प्रमाणीकरण · पाठ

Granted Authorities के साथ भूमिका-आधारित प्राधिकरण

डेटाबेस से उपयोगकर्ताओं का प्रमाणीकरण करने के बाद, Spring Security में भूमिकाओं और authorities का उपयोग करके उन्हें अधिकृत करना तथा endpoint और विधियों को सुरक्षित करना सीखें।

पाठ 4, कुल 4 में से13 चरण

Granted Authorities के साथ भूमिका-आधारित प्राधिकरण, CoddyKit पर Spring Security 6 और JWT प्रमाणीकरण का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Spring Security 6 और JWT प्रमाणीकरण सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Spring Security 6 और JWT प्रमाणीकरण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Authentication बनाम Authorization

अब आप डेटाबेस से उपयोगकर्ताओं को लोड करके पासवर्ड सत्यापित कर सकते हैं। इसे authentication (आप कौन हैं) कहते हैं। अगला प्रश्न है authorization (आप क्या कर सकते हैं), जो roles और authorities द्वारा निर्धारित होता है।

Authorities और Roles

स्प्रिंग permissions को GrantedAuthority objects के रूप में दर्शाता है। role वास्तव में ROLE_ prefix वाला authority है, जैसे ROLE_ADMIN।

उपयोगकर्ता को Authorities देना

अपना UserDetails बनाते समय, उपयोगकर्ता के पास मौजूद authorities जोड़ें।

User.withUsername('alice')
    .password(encoded)
    .roles('ADMIN', 'USER')
    .build();

Role के आधार पर URLs सुरक्षित करना

फ़िल्टर श्रृंखला में hasRole के माध्यम से paths को सीमित करें। यहाँ स्प्रिंग आपके लिए ROLE_ prefix जोड़ता है।

http.authorizeHttpRequests(a -> a
    .requestMatchers('/admin/**').hasRole('ADMIN')
    .anyRequest().authenticated());

विशिष्ट Authorities आवश्यक करना

अधिक सूक्ष्म नियंत्रण के लिए hasAuthority का उपयोग करें। यह बिना कोई prefix जोड़े authority string से बिल्कुल सटीक मिलान करता है।

http.authorizeHttpRequests(a -> a
    .requestMatchers('/reports/**').hasAuthority('REPORT_READ'));

एकाधिक अनुमत Roles

यदि उपयोगकर्ता के पास कई roles में से कम-से-कम एक role हो, तो hasAnyRole access की अनुमति देता है।

http.authorizeHttpRequests(a -> a
    .requestMatchers('/staff/**').hasAnyRole('ADMIN', 'MANAGER'));

Method-Level Security

केवल URLs ही नहीं, बल्कि service methods को सुरक्षित करने के लिए annotation-आधारित सुरक्षा सक्षम करें।

@EnableMethodSecurity
@Configuration
public class SecurityConfig { }

@PreAuthorize का उपयोग

@PreAuthorize method के चलने से पहले SpEL expression चलाता है और अनधिकृत callers को रोकता है।

@PreAuthorize("hasRole('ADMIN')")
public void deleteUser(Long id) { }

वर्तमान User की जाँच

SpEL authenticated principal का संदर्भ ले सकता है, जैसे उपयोगकर्ताओं को केवल अपना डेटा संपादित करने की अनुमति देना।

@PreAuthorize("#username == authentication.name")
public void updateProfile(String username) { }

DB Roles को Authorities में मैप करना

अपने UserDetailsService में डेटाबेस से प्राप्त role rows को SimpleGrantedAuthority objects में बदलें, ताकि authorization नियम लागू हो सकें।

var auths = roles.stream()
    .map(r -> new SimpleGrantedAuthority('ROLE_' + r))
    .toList();

सब कुछ एक साथ

पूरी प्रक्रिया: DB से authenticate करें, roles को authorities में मैप करें, hasRole/hasAuthority से URLs सुरक्षित करें और @PreAuthorize से methods की सुरक्षा करें।

त्वरित जाँच

hasRole('ADMIN') और hasAuthority('ADMIN') में क्या अंतर है?

पुनरावलोकन

अब आप यह नियंत्रित कर सकते हैं कि authenticated users क्या कर सकते हैं:

  • Roles, ROLE_ prefix वाले authorities होते हैं
  • hasRole/hasAnyRole बनाम सटीक hasAuthority
  • method-level नियमों के लिए @EnableMethodSecurity + @PreAuthorize
  • DB roles को UserDetailsService में SimpleGrantedAuthority में मैप करें
शुरुआत निःशुल्क

एआई शिक्षक के साथ Java सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “Granted Authorities के साथ भूमिका-आधारित प्राधिकरण” पाठ निःशुल्क है?

हाँ — Spring Security 6 और JWT प्रमाणीकरण अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Granted Authorities के साथ भूमिका-आधारित प्राधिकरण” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Spring Security 6 और JWT प्रमाणीकरण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Granted Authorities के साथ भूमिका-आधारित प्राधिकरण” में मैं क्या सीखूँगा?

डेटाबेस से उपयोगकर्ताओं का प्रमाणीकरण करने के बाद, Spring Security में भूमिकाओं और authorities का उपयोग करके उन्हें अधिकृत करना तथा endpoint और विधियों को सुरक्षित करना सीखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Spring Security 6 और JWT प्रमाणीकरण का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Spring Security 6 और JWT प्रमाणीकरण शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Spring Security 6 और JWT प्रमाणीकरण शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“Granted Authorities के साथ भूमिका-आधारित प्राधिकरण” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Spring Security 6 और JWT प्रमाणीकरण पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Spring Security 6 और JWT प्रमाणीकरण पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. कस्टम UserDetailsService का कार्यान्वयन
  2. पासवर्ड एन्कोडर को समझना
  3. डेटाबेस उपयोगकर्ता प्रबंधन का एकीकरण
  4. Granted Authorities के साथ भूमिका-आधारित प्राधिकरण
← Spring Security 6 और JWT प्रमाणीकरण पर वापस जाएँ