Maison > Java > javaDidacticiel > le corps du texte

Comment personnaliser le formulaire de connexion dans Spring Security pour utiliser une base de données personnalisée.

WBOY
Libérer: 2024-07-16 13:00:54
original
609 Les gens l'ont consulté

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

Pour personnaliser le formulaire de connexion dans Spring Security afin d'utiliser une base de données personnalisée, vous pouvez suivre ces étapes :

Créez un service UserDetails personnalisé :

Implémentez l'interface UserDetailsService pour charger les détails de l'utilisateur à partir de votre base de données personnalisée.

Remplacez la méthode loadUserByUsername pour interroger votre base de données pour connaître les détails de l'utilisateur.

Configurer la sécurité Spring :

Dans votre configuration Spring Security, définissez le bean UserDetailsService.

Configurez AuthenticationManager pour utiliser votre UserDetailsService personnalisé.

Personnalisez le formulaire de connexion en spécifiant l'URL de la page de connexion et l'URL de traitement de la connexion.

Mettre en œuvre le formulaire de connexion personnalisé :

Créez un fichier JSP ou HTML pour le formulaire de connexion personnalisé.

Incluez des champs de saisie pour le nom d'utilisateur et le mot de passe, ainsi qu'un bouton d'envoi.

Utilisez l'URL de traitement de connexion spécifiée dans la configuration Spring Security pour soumettre le formulaire.

Voici un exemple de mise en œuvre :

  1. Créer un service UserDetails personnalisé

classe publique CustomUserDetailsService implémente UserDetailsService {
@Autowired
privé 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;
}
Copier après la connexion

}

  1. Configurer la sécurité Spring

@Configuration
@EnableWebSecurity
la classe publique SecurityConfig étend WebSecurityConfigurerAdapter {
@Autowired
privé 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();
}
Copier après la connexion

}

  1. Mettre en œuvre le formulaire de connexion personnalisé

Créez un fichier login.jsp (ou login.html) dans votre répertoire src/main/webapp/WEB-INF/views (ou emplacement équivalent) :




Connexion


Connexion




Nom d'utilisateur :



Mot de passe :


Connexion


Nom d'utilisateur ou mot de passe invalide.
/c:si

Dans cet exemple, le formulaire de connexion est soumis à l'URL /login, qui est l'URL de traitement de connexion spécifiée dans la configuration Spring Security.

En suivant ces étapes, vous pouvez personnaliser le formulaire de connexion dans Spring Security pour utiliser une base de données personnalisée pour l'authentification des utilisateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal