Configurer le gestionnaire d'identité

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            // l'identité des utilisateurs est stockée en mémoire
            // le préfixe utilisé pour le mot de passe sert à spécifier l'algorithme utilisé
            // {noop} => mot de passe en clair
            auth.inMemoryAuthentication().withUser("root").password("{noop}root").roles("ADMIN");
    }
}

Identité stockée en base de données

Schéma base de données par défaut : voir https://docs.spring.io/spring-security/site/docs/current/reference/html/appendix-schema.html.

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired DataSource dataSource; // bean source de données
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        // l'identité des utilisateurs est stockée en base de données
        auth.jdbcAuthentication()
        .dataSource(dataSource)
        .withDefaultSchema() // cela implique la création de tables users, authorities,...
        .withUser("user").password("password").roles("USER").and()
        .withUser("admin").password("password").roles("USER", "ADMIN");
    }
}

Identité stockée en base de données

protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.jdbcAuthentication() //
            .dataSource(dataSource) // source de données
            .passwordEncoder(passwordEncoder) // choix de l'algorithme d'encodage du mot de passe
            .usersByUsernameQuery("select NOM_UTILISATEUR, MOT_DE_PASSE, EST_ACTIF from UTILISATEUR where NOM_UTILISATEUR=?")
            .authoritiesByUsernameQuery("select NOM_UTILISATEUR,ROLE from UTILISATEUR where NOM_UTILISATEUR = ?");
}

results matching ""

    No results matching ""