Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 8 · Application directe du cours
401 ou 403 ?
Sécuriser l'application · niveau 1 (application)
Énoncé
Prévoir le statut de chacune de ces requêtes à la Librairie, puis le vérifier par un test :
- supprimer un livre, sans identification ;
- supprimer un livre, en tant que
compta; - lire la liste des commandes avec le compte
comptaet le mot de passecalcul2026; - lire un livre d'ISBN inconnu, sans identification.
Corrigé
- 401 : la règle
hasRole("ADMIN")s'applique, et l'anonyme doit d'abord s'identifier. - 403 : la comptable est connue, mais n'a pas le rôle.
- 401 : le mot de passe est faux, l'identité n'est pas établie. Le rôle n'est même pas examiné.
- 404 : la lecture d'un livre est publique ; la sécurité laisse passer, et c'est le service qui ne trouve pas le livre.
// Exercice 8.1 : 401 ou 403 ?
@Test
void ex1_quatreRequetes() {
assertThat(mvc.delete().uri("/api/livres/9782956300045")).hasStatus(401);
assertThat(mvc.delete().uri("/api/livres/9782956300045")
.with(httpBasic("compta", "calcul-2026"))).hasStatus(403);
assertThat(mvc.get().uri("/api/admin/commandes")
.with(httpBasic("compta", "calcul2026"))).hasStatus(401);
assertThat(mvc.get().uri("/api/livres/9780000000000")).hasStatus(404);
}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.