Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 8 · Exercice de TD
Qui suis-je ?
Sécuriser l'application · niveau 2
Énoncé
Ajouter une adresse GET /api/moi, accessible à toute personne identifiée, qui renvoie son identifiant et ses rôles. Écrire la règle et le test.
Corrigé
@RestController
public class MoiController {
public record Moi(String identifiant, List<String> roles) {
}
@GetMapping("/api/moi")
public Moi moi(Authentication authentification) {
List<String> roles = authentification.getAuthorities().stream()
.map(GrantedAuthority::getAuthority)
.filter(droit -> droit.startsWith("ROLE_"))
.toList();
return new Moi(authentification.getName(), roles);
}
}
La règle, placée avant celles du personnel :
// exercice 8.4 : toute personne identifiée peut demander qui elle est
.requestMatchers(HttpMethod.GET, "/api/moi").authenticated()
Le filtre sur ROLE_ écarte le « facteur » de la section 8.4. Avec curl :
$ curl -i -u admin:libraire-2026 http://localhost:8000/api/moi
HTTP/1.1 200
Content-Type: application/json
Content-Length: 46
{"identifiant":"admin","roles":["ROLE_ADMIN"]}100 % gratuit
La suite du chapitre est sur Adloun
- 9 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.