कस्टम डेटाबेस का उपयोग करने के लिए स्प्रिंग सिक्योरिटी में लॉगिन फॉर्म को अनुकूलित करने के लिए, आप इन चरणों का पालन कर सकते हैं:
एक कस्टम उपयोगकर्ता विवरण सेवा बनाएं:
अपने कस्टम डेटाबेस से उपयोगकर्ता विवरण लोड करने के लिए UserDetailsService इंटरफ़ेस लागू करें।
उपयोगकर्ता विवरण के लिए अपने डेटाबेस से पूछताछ करने के लिए LoadUserByUsername विधि को ओवरराइड करें।
स्प्रिंग सुरक्षा कॉन्फ़िगर करें:
अपने स्प्रिंग सुरक्षा कॉन्फ़िगरेशन में, UserDetailsService बीन को परिभाषित करें।
अपने कस्टम UserDetailsService का उपयोग करने के लिए प्रमाणीकरण प्रबंधक को कॉन्फ़िगर करें।
लॉगिन पेज यूआरएल और लॉगिन प्रोसेसिंग यूआरएल निर्दिष्ट करके लॉगिन फॉर्म को अनुकूलित करें।
कस्टम लॉगिन फॉर्म लागू करें:
कस्टम लॉगिन फॉर्म के लिए एक JSP या HTML फ़ाइल बनाएं।
उपयोगकर्ता नाम और पासवर्ड के लिए इनपुट फ़ील्ड और एक सबमिट बटन शामिल करें।
फॉर्म सबमिट करने के लिए स्प्रिंग सिक्योरिटी कॉन्फ़िगरेशन में निर्दिष्ट लॉगिन प्रोसेसिंग यूआरएल का उपयोग करें।
यहां एक उदाहरण कार्यान्वयन है:
सार्वजनिक वर्ग CustomUserDetailsService UserDetailsService लागू करता है {
@ऑटोवायर्ड
निजी JdbcTemplate jdbcTemplate;
@Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { String query = "SELECT * FROM users WHERE username = ?"; User user = jdbcTemplate.queryForObject(query, new Object[]{username}, new UserRowMapper()); if (user == null) { throw new UsernameNotFoundException("User not found"); } return user; }
}
@विन्यास
@EnableWebSecurity
सार्वजनिक वर्ग SecurityConfig WebSecurityConfigurerAdapter का विस्तार करता है {
@ऑटोवायर्ड
निजी CustomUserDetailsService CustomUserDetailsService;
@Autowired private PasswordEncoder passwordEncoder; @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(customUserDetailsService) .passwordEncoder(passwordEncoder); } @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/login").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .loginProcessingUrl("/login") .defaultSuccessUrl("/welcome") .failureUrl("/login?error") .permitAll(); }
}
अपनी src/main/webapp/WEB-INF/views निर्देशिका (या समतुल्य स्थान) में एक लॉगिन.जेएसपी (या लॉगिन.एचटीएमएल) फ़ाइल बनाएं:
इस उदाहरण में, लॉगिन फॉर्म /लॉगिन यूआरएल पर सबमिट किया जाता है, जो स्प्रिंग सिक्योरिटी कॉन्फ़िगरेशन में निर्दिष्ट लॉगिन प्रोसेसिंग यूआरएल है।
इन चरणों का पालन करके, आप उपयोगकर्ता प्रमाणीकरण के लिए कस्टम डेटाबेस का उपयोग करने के लिए स्प्रिंग सिक्योरिटी में लॉगिन फॉर्म को कस्टमाइज़ कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3