"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment personnaliser le formulaire de connexion dans Spring Security pour utiliser une base de données personnalisée.

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

Publié le 2024-07-31
Parcourir:786

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éer 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 obtenir 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 de détails utilisateur 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;
}

}

  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();
}

}

  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) :




Se connecter


Se connecter




Nom d'utilisateur:



Mot de passe:


Se connecter


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.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/fullstackjava/how-to-customize-the-login-form-in-spring-security-to-use-a-custom-database-20mh?1S'il y en a infraction, veuillez contacter [email protected] pour supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3