Aller au contenu

Module 7 – Sécurité Spring Security + JWT (pédagogique)

Pourquoi sécuriser ?

Sans sécurité :

Objectifs :


Authentification vs Autorisation

Exemple :


Configuration de base

Dépendance :

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>

Sans config, Spring bloque tout (401).


Stratégie pour Wouaf Wouaf


Exemple de SecurityFilterChain

@Bean
SecurityFilterChain security(HttpSecurity http) throws Exception {
  return http
    .csrf(csrf -> csrf.disable())
    .authorizeHttpRequests(auth -> auth
      .requestMatchers("/actuator/health").permitAll()
      .requestMatchers(HttpMethod.POST, "/api/races/**").hasRole("ADMIN")
      .requestMatchers(HttpMethod.POST, "/api/concours/**").hasRole("ADMIN")
      .anyRequest().authenticated()
    )
    .httpBasic(Customizer.withDefaults()) // d'abord on fait simple
    .build();
}

Pourquoi commencer avec httpBasic ?


JWT : pourquoi ?

httpBasic :

JWT :


Tests de sécurité (à faire)

(voir module tests avancés pour exemples complets)


Pièges