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:
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; }
}
@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(); }
}
Buat fail login.jsp (atau login.html) dalam direktori src/main/webapp/WEB-INF/views (atau lokasi yang setara):
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!