لتخصيص نموذج تسجيل الدخول في Spring Security لاستخدام قاعدة بيانات مخصصة، يمكنك اتباع الخطوات التالية:
إنشاء خدمة تفاصيل المستخدم المخصصة:
تنفيذ واجهة UserDetailsService لتحميل تفاصيل المستخدم من قاعدة البيانات المخصصة الخاصة بك.
تجاوز طريقة التحميلUserByUsername للاستعلام عن قاعدة البيانات الخاصة بك للحصول على تفاصيل المستخدم.
تكوين أمان الربيع:
في تكوين Spring Security الخاص بك، قم بتعريف فول UserDetailsService.
قم بتكوين AuthenticationManager لاستخدام خدمة UserDetailsService المخصصة.
قم بتخصيص نموذج تسجيل الدخول عن طريق تحديد عنوان URL لصفحة تسجيل الدخول وعنوان URL لمعالجة تسجيل الدخول.
تنفيذ نموذج تسجيل الدخول المخصص:
قم بإنشاء ملف JSP أو HTML لنموذج تسجيل الدخول المخصص.
تضمين حقول الإدخال لاسم المستخدم وكلمة المرور وزر إرسال.
استخدم عنوان URL لمعالجة تسجيل الدخول المحدد في تكوين Spring Security لإرسال النموذج.
إليك مثال للتنفيذ:
الطبقة العامة CustomUserDetailsService تنفذ UserDetailsService {
@Autowired
خاص 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 {
@Autowired
خاص 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(); }
}
قم بإنشاء ملف تسجيل الدخول.jsp (أو تسجيل الدخول.html) في دليل src/main/webapp/WEB-INF/views (أو موقع مكافئ):
في هذا المثال، يتم إرسال نموذج تسجيل الدخول إلى عنوان URL /login، وهو عنوان URL لمعالجة تسجيل الدخول المحدد في تكوين Spring Security.
باتباع هذه الخطوات، يمكنك تخصيص نموذج تسجيل الدخول في Spring Security لاستخدام قاعدة بيانات مخصصة لمصادقة المستخدم.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3