Adloun

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 compta et le mot de passe calcul2026 ;
  • 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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →