Maison  >  Questions et réponses  >  le corps du texte

Spring Authorization Server 1.0.0 : erreur javascript lors de la demande de /oauth2/token

<p>J'ai créé un serveur d'autorisation Spring - vous pouvez trouver le code sur github https://github.com/costerutilo/UTILO-Authorization-Server</p> <p>Je ne parviens pas à lire le jeton via JavaScript. J'ai créé une simple application Web Vue pour obtenir le code d'autorisation du client, mais je ne parviens pas à obtenir le jeton. </p> <p>Essayez d'utiliser l'API fetch : </p> <pre class="brush:php;toolbar:false;">const url = 'http://127.0.0.1:9000/oauth2/token'; var informations d'identification = btoa(import.meta.env.VITE_CLIENT_ID + ':' + 'secret'); var basicAuth = 'Basic' + informations d'identification ; var mesEn-têtes = nouveaux En-têtes(); //myHeaders.append("Autorisation", "Basic dXRpbG8tY2xpZW50OnNlY3JldA=="); myHeaders.append("Autorisation", basicAuth); myHeaders.append("Content-Type", "application/x-www-form-urlencoded"); var urlencoded = new URLSearchParams(); urlencoded.append("grant_type", "authorization_code"); // urlencoded.append("code", "yyJTTI3JqNno1XlSW59qxX3CCytMm-ChoHnqVw3iSUGyT6ltT_tpPclQ8bdSyeApO4IWE442irBiRwntJJzae9BIntpC3_vshTgNhAfbsBlkwh3n50jkAxs 3hT "qavqsy"); urlencoded.append("code", code); urlencoded.append("redirect_uri", "https://www.utilo.eu"); var options de requête = { méthode : 'POST', en-têtes : mesEn-têtes, corps : codé en urlen, redirection : "suivre" } ; récupérer (url, options de demande) .then(réponse => réponse.text()) .then(result => console.log(result)) .catch(erreur => console.log('erreur', erreur));</pre> <p>Dans la console javascript du navigateur, je vois une exception CORS</p> <pre class="brush:php;toolbar:false;">L'accès pour récupérer à 'http://127.0.0.1:9000/oauth2/token' depuis l'origine 'http://127.0.0.1:9010' a été bloqué par la stratégie CORS : la réponse à la demande de contrôle en amont ne réussit pas le contrôle de contrôle d'accès</pre> <p>La console du serveur donne l'erreur : </p> <pre class="brush:php;toolbar:false;">2023-02-27T09:35:53.786+01:00 TRACE 33212 --- [nio-9000-exec-3] o.s.s.w.a.ExceptionTranslationFilter : envoi d'AnonymousAuthenticationToken [ Principal=anonymousUser, Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=127.0.0.1, SessionId=null], Granted Authorities=[ROLE_ANONYMOUS]] au point d'entrée d'authentification puisque l'accès est refusé org.springframework.security.access.AccessDeniedException : accès refusé</pre> <p>Si j'essaie la même requête dans Postman, j'obtiens JSON avec le jeton.</p> <p>Je ne sais pas quelle est mon erreur de raisonnement ni ce que je fais de mal. </p>
P粉314915922P粉314915922432 Il y a quelques jours567

répondre à tous(1)je répondrai

  • P粉792026467

    P粉7920264672023-09-05 13:35:43

    Vous devrez activer CORS pour votre chaîne de filtres Spring Security @Bean et fournir comme cet exemple  :

    @Configuration
    public class CorsConfig {
    
        @Bean
        public CorsConfigurationSource corsConfigurationSource() {
            UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
            CorsConfiguration config = new CorsConfiguration();
            config.addAllowedHeader("*");
            config.addAllowedMethod("*");
            config.addAllowedOrigin("http://127.0.0.1:4200");
            config.setAllowCredentials(true);
            source.registerCorsConfiguration("/**", config);
            return source;
        }
    
    }
    
    Remarque : 4200Port

    est destiné à l'environnement de développement Angular, remplacez-le par le port de votre serveur de développement Vue. 🎜

    répondre
    0
  • Annulerrépondre