Rumah > Java > javaTutorial > teks badan

Bagaimana untuk menyesuaikan borang log masuk dalam Spring Security untuk menggunakan pangkalan data tersuai.

WBOY
Lepaskan: 2024-07-16 13:00:54
asal
533 orang telah melayarinya

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

Untuk menyesuaikan borang log masuk dalam Spring Security untuk menggunakan pangkalan data tersuai, anda boleh mengikuti langkah berikut:

Buat Perisian Pengguna Tersuai:

Laksanakan antara muka UserDetailsService untuk memuatkan butiran pengguna daripada pangkalan data tersuai anda.

Timpa kaedah loadUserByUsername untuk menanyakan pangkalan data anda untuk butiran pengguna.

Konfigurasikan Keselamatan Spring:

Dalam konfigurasi Spring Security anda, tentukan kacang UserDetailsService.

Konfigurasikan AuthenticationManager untuk menggunakan UserDetailsService tersuai anda.

Sesuaikan borang log masuk dengan menyatakan URL halaman log masuk dan URL pemprosesan log masuk.

Laksanakan Borang Log Masuk Tersuai:

Buat fail JSP atau HTML untuk borang log masuk tersuai.

Sertakan medan input untuk nama pengguna dan kata laluan serta butang hantar.

Gunakan URL pemprosesan log masuk yang dinyatakan dalam konfigurasi Spring Security untuk menyerahkan borang.

Berikut ialah contoh pelaksanaan:

  1. Buat UserDetailsService Tersuai

CustomUserDetailsService kelas awam melaksanakan UserDetailsService {
@Autowired
JdbcTemplate jdbcTemplate peribadi;

@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;
}
Salin selepas log masuk

}

  1. Konfigurasikan Keselamatan Spring

@Konfigurasi
@EnableWebSecurity
SecurityConfig kelas awam memanjangkan WebSecurityConfigurerAdapter {
@Autowired
peribadi 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();
}
Salin selepas log masuk

}

  1. Laksanakan Borang Log Masuk Tersuai

Buat fail login.jsp (atau login.html) dalam direktori src/main/webapp/WEB-INF/views (atau lokasi yang setara):




Log masuk


Log Masuk




Nama pengguna:



Kata laluan:


Log masuk


Nama pengguna atau kata laluan tidak sah.
/c:jika

Dalam contoh ini, borang log masuk diserahkan kepada URL /login, iaitu URL pemprosesan log masuk yang dinyatakan dalam konfigurasi Spring Security.

Dengan mengikuti langkah ini, anda boleh menyesuaikan borang log masuk dalam Spring Security untuk menggunakan pangkalan data tersuai untuk pengesahan pengguna.

Atas ialah kandungan terperinci Bagaimana untuk menyesuaikan borang log masuk dalam Spring Security untuk menggunakan pangkalan data tersuai.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!