Adloun

Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 9 · Exercice de TD

Toutes les origines, avec identifiants

Le client Vue face au serveur · niveau 2

Énoncé

Que se passe-t-il si l'on écrit


config.setAllowedOrigins(List.of("*"));
config.setAllowCredentials(true);

Le constater par un test et expliquer pourquoi la règle existe.

Corrigé


    @Test
    void etoileEtIdentifiantsSontIncompatibles() {
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowedOrigins(List.of("*"));
        config.setAllowCredentials(true);
        assertThatThrownBy(config::validateAllowCredentials)
                .isInstanceOf(IllegalArgumentException.class)
                .satisfies(e -> System.out.println("Message : " + e.getMessage()));
    }

Le message affiché pendant le test :


Message : When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins, list them explicitly or consider using "allowedOriginPatterns" instead.

Le protocole lui-même interdit Access-Control-Allow-Origin: * quand la requête porte des identifiants (cookies, en-tête Authorization) : sinon, n'importe quel site pourrait agir au nom de l'utilisateur connecté et lire les réponses. Spring refuse la configuration dès qu'une requête la met en œuvre, plutôt que de laisser le navigateur échouer en silence.

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 →