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

मेमोरी-आधारित उपयोगकर्ता प्रमाणीकरण

उपयोगकर्ता नाम, पासवर्ड और भूमिकाओं को सीधे कॉन्फ़िगर करके मेमोरी में रखे उपयोगकर्ता विवरणों का उपयोग करते हुए बुनियादी प्रमाणीकरण लागू करें।

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

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

मेमोरी में प्रमाणीकरण का परिचय

वास्तविक उपयोगकर्ता जोड़ने का सबसे तेज़ तरीका है: in-memory authentication। आप खाते सीधे कोड में परिभाषित करते हैं — परीक्षणों और छोटे ऐप्लिकेशन के लिए यह बिल्कुल उपयुक्त है।

मेमोरी में प्रमाणीकरण क्यों?

In-memory authentication प्रारूप तैयार करने, सीखने और ऐसे छोटे ऐप्लिकेशन के लिए उपयोगी है जहाँ उपयोगकर्ताओं को डेटाबेस में स्थायी रूप से सहेजने की आवश्यकता नहीं होती।

मूल: UserDetailsService

UserDetailsService इंटरफ़ेस प्रमाणीकरण का मूल है — इसका काम उपयोगकर्ता का डेटा लोड करना है। मेमोरी-आधारित मोड इसे आपके कोड में परिभाषित खातों से लोड करता है।

UserDetails से परिचय

UserDetailsService एक UserDetails ऑब्जेक्ट लौटाता है, जिसमें उपयोगकर्ता नाम, हमेशा एन्कोड किया गया पासवर्ड और उपयोगकर्ता की पहुँच निर्धारित करने वाले प्राधिकरण होते हैं।

बिल्डर से उपयोगकर्ता परिभाषित करना

उपयोगकर्ता बनाने के लिए User.builder() का उपयोग करें: उपयोगकर्ता नाम, एन्कोड किया हुआ पासवर्ड और भूमिकाएँ निर्धारित करें। कोड में एक न्यूनतम उपयोगकर्ता दिखाया गया है।

import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

public class UserBuilderDemo {
    public static void main(String[] args) {
        // A PasswordEncoder is essential for security
        PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();

        UserDetails user = User.builder()
            .username("alice")
            .password(passwordEncoder.encode("secret")) // Encode the password!
            .roles("USER") // Short for ROLE_USER
            .build();

        System.out.println("Username: " + user.getUsername());
        System.out.println("Password (encoded): " + user.getPassword());
        System.out.println("Authorities: " + user.getAuthorities());
    }
}

InMemoryUserDetailsManager

InMemoryUserDetailsManager मेमोरी-आधारित प्रमाणीकरण के लिए डिफ़ॉल्ट UserDetailsService है और आपके UserDetails को एक सरल मानचित्र में सहेजता है। इसके निर्माता को उपयोगकर्ता पास करें।

import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

public class InMemoryManagerDemo {
    public static void main(String[] args) {
        PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();

        UserDetails user1 = User.builder()
            .username("bob")
            .password(passwordEncoder.encode("pass123"))
            .roles("USER")
            .build();

        UserDetails admin = User.builder()
            .username("admin")
            .password(passwordEncoder.encode("adminpass"))
            .roles("ADMIN", "USER") // Multiple roles
            .build();

        // Create the manager with our users
        InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(user1, admin);

        // Try to load a user
        System.out.println("Loaded user: " + manager.loadUserByUsername("bob").getUsername());
        System.out.println("Loaded admin: " + manager.loadUserByUsername("admin").getUsername());
    }
}

प्रबंधक बीन कॉन्फ़िगर करना

Boot में InMemoryUserDetailsManager को @Bean के रूप में उपलब्ध कराएँ और Spring इसे अपने-आप पहचान लेगा। साथ ही PasswordEncoder बीन देना न भूलें।

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@Configuration
public class SimpleSecurityConfig {

    @Bean
    public UserDetailsService inMemoryUsers(PasswordEncoder passwordEncoder) {
        UserDetails user = User.builder()
            .username("tester")
            .password(passwordEncoder.encode("testpass"))
            .roles("VIEWER")
            .build();
        return new InMemoryUserDetailsManager(user);
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

    // Other HttpSecurity configurations would go here...
}

भूमिकाएँ बनाम प्राधिकरण

roles का उपयोग करें और Spring इनके आगे अपने-आप ROLE_ जोड़ देता है (USER, ROLE_USER बन जाता है)। बारीकी से नियंत्रित अनुमतियों के लिए, .authorities() पूरी स्ट्रिंग को ज्यों का त्यों लेता है।

एकाधिक उपयोगकर्ता और भूमिकाएँ

पहुँच-नियंत्रण के परिदृश्यों का परीक्षण करने के लिए जितने in-memory users चाहिए, उतने जोड़ें और प्रत्येक को अलग-अलग भूमिकाएँ दें — बस प्रबंधक को अधिक UserDetails पास करें।

त्वरित जाँच

आपने मेमोरी में उपयोगकर्ता सेट करना सीख लिया है। इन मेमोरी-आधारित उपयोगकर्ता विवरणों का प्रबंधन और पुनर्प्राप्ति करने के लिए विशेष रूप से Spring Security के किस घटक का उपयोग किया जाता है?

पुनरावलोकन: मेमोरी में प्रमाणीकरण

पुनरावलोकन: in-memory authentication से आप User.builder() के माध्यम से उपयोगकर्ताओं को परिभाषित कर सकते हैं, उन्हें InMemoryUserDetailsManager में सहेज सकते हैं, पासवर्ड एन्कोड कर सकते हैं और भूमिकाएँ निर्धारित कर सकते हैं।

शुरुआत निःशुल्क

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

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

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

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

क्या “मेमोरी-आधारित उपयोगकर्ता प्रमाणीकरण” पाठ निःशुल्क है?

हाँ—“मेमोरी-आधारित उपयोगकर्ता प्रमाणीकरण” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Spring Security 6 और JWT प्रमाणीकरण पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Spring Security 6 और JWT प्रमाणीकरण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

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

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

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

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

“मेमोरी-आधारित उपयोगकर्ता प्रमाणीकरण” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. Spring Security 6 का परिचय
  2. प्रोजेक्ट स्थापना और निर्भरताएँ
  3. मेमोरी-आधारित उपयोगकर्ता प्रमाणीकरण
  4. Spring Security फ़िल्टर श्रृंखला को समझना
← Spring Security 6 और JWT प्रमाणीकरण पर वापस जाएँ