Premiers pas

Maven

  • Ajouter la dépendance vers spring-boot-starter-security :
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-security</artifactId>
 </dependency>

Configuration de Spring Security

  • Ajouter la classe de configuration dev.config.WebSecurityConfig :
package dev.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    // Configuration de la source d'identité
    @Bean
    @Override
    public UserDetailsService userDetailsService() {
        // Ici une gestion en "mémoire" des utisateurs
        InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();

        // Création d'un utilisateur en "dur"
        manager.createUser(
                User.withDefaultPasswordEncoder().username("user").password("password").roles("USER").build());
        return manager;
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
        // toutes les requêtes HTTP sont soumises à authentification
        .authorizeRequests().anyRequest().authenticated()
        .and()
        // génération de la page de login par Spring Security (pas très jolie mais ça marche)
        .formLogin()
        // la page de login n'est pas soumise à authentification
        .permitAll();
    }

}
  • Redémarrer l'application et chercher à accéder à une page existante. Vous devriez avoir l'écran d'authentification suivant :

  • Connectez-vous et vérifier que l'application fonctionne.

Tomcat sérialise les sessions sur le disque. Ce qui veut dire que votre cookie JSESSIONID peut encore être valable après un rédémarrage. Ce qui a comme conséquence de NE pas vous déconnecter. Deux options pour se retrouver à l'état déconnecté : lancer une nouvelle navigation privée avec votre navigateur ou supprimer le cookie JSESSIONID.

results matching ""

    No results matching ""