Adloun

Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 9 · Application directe du cours

L'aperçu de Vite

Le client Vue face au serveur · niveau 1 (application)

Énoncé

Autoriser l'application servie par vite preview, qu'elle soit ouverte à http://localhost:4173 ou à http://127.0.0.1:4173, sans ouvrir l'API aux autres ports. Écrire un test qui le vérifie.

Corrigé

Les deux noms désignent la même machine mais forment deux origines : on les ajoute toutes deux.


  cors:
    origines:
      - http://localhost:5173
      - http://localhost:4173       # exercice 9.2 : vite preview
      - http://127.0.0.1:4173

    @Test
    void lApercuDeViteEstAutorise() {
        assertThat(mvc.options().uri("/api/livres")
                .header("Origin", "http://localhost:4173")
                .header("Access-Control-Request-Method", "GET"))
                .hasStatusOk()
                .hasHeader("Access-Control-Allow-Origin", "http://localhost:4173");
    }

    @Test
    void lAdresseNumeriqueEstUneAutreOrigine() {
        assertThat(mvc.options().uri("/api/commandes")
                .header("Origin", "http://127.0.0.1:4173")
                .header("Access-Control-Request-Method", "POST"))
                .hasStatusOk()
                .hasHeader("Access-Control-Allow-Origin", "http://127.0.0.1:4173");
    }

    @Test
    void uneAutreOrigineEstRefusee() {
        assertThat(mvc.options().uri("/api/livres")
                .header("Origin", "http://localhost:4174")
                .header("Access-Control-Request-Method", "GET"))
                .hasStatus(403)
                .doesNotContainHeader("Access-Control-Allow-Origin");
    }

Avec ce réglage, les tests de bout en bout du livre Vue, lancés contre ce serveur, passent (chapitre 12).

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 →