"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تخصيص نموذج تسجيل الدخول في Spring Security لاستخدام قاعدة بيانات مخصصة.

كيفية تخصيص نموذج تسجيل الدخول في Spring Security لاستخدام قاعدة بيانات مخصصة.

تم النشر بتاريخ 2024-07-31
تصفح:120

How to customize the login form in Spring Security to use a custom database.

لتخصيص نموذج تسجيل الدخول في Spring Security لاستخدام قاعدة بيانات مخصصة، يمكنك اتباع الخطوات التالية:

إنشاء خدمة تفاصيل المستخدم المخصصة:

تنفيذ واجهة UserDetailsService لتحميل تفاصيل المستخدم من قاعدة البيانات المخصصة الخاصة بك.

تجاوز طريقة التحميلUserByUsername للاستعلام عن قاعدة البيانات الخاصة بك للحصول على تفاصيل المستخدم.

تكوين أمان الربيع:

في تكوين Spring Security الخاص بك، قم بتعريف فول UserDetailsService.

قم بتكوين AuthenticationManager لاستخدام خدمة UserDetailsService المخصصة.

قم بتخصيص نموذج تسجيل الدخول عن طريق تحديد عنوان URL لصفحة تسجيل الدخول وعنوان URL لمعالجة تسجيل الدخول.

تنفيذ نموذج تسجيل الدخول المخصص:

قم بإنشاء ملف JSP أو HTML لنموذج تسجيل الدخول المخصص.

تضمين حقول الإدخال لاسم المستخدم وكلمة المرور وزر إرسال.

استخدم عنوان URL لمعالجة تسجيل الدخول المحدد في تكوين Spring Security لإرسال النموذج.

إليك مثال للتنفيذ:

  1. إنشاء خدمة تفاصيل المستخدم المخصصة

الطبقة العامة 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;
}

}

  1. تكوين أمان الربيع

@إعدادات
@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();
}

}

  1. تنفيذ نموذج تسجيل الدخول المخصص

قم بإنشاء ملف تسجيل الدخول.jsp (أو تسجيل الدخول.html) في دليل src/main/webapp/WEB-INF/views (أو موقع مكافئ):




تسجيل الدخول


تسجيل الدخول




اسم المستخدم:



كلمة المرور:


تسجيل الدخول


خطأ في اسم المستخدم أو كلمة مرور.
/ج:إذا

في هذا المثال، يتم إرسال نموذج تسجيل الدخول إلى عنوان URL /login، وهو عنوان URL لمعالجة تسجيل الدخول المحدد في تكوين Spring Security.

باتباع هذه الخطوات، يمكنك تخصيص نموذج تسجيل الدخول في Spring Security لاستخدام قاعدة بيانات مخصصة لمصادقة المستخدم.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/fullstackjava/how-to-customize-the-login-form-in-spring-security-to-use-a-custom-database-20mh?1إذا كان هناك أي التعدي، يرجى الاتصال بـ [email protected] للحذف
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3