Maison >interface Web >js tutoriel >Comment configurer correctement CORS dans une application Spring Boot avec Spring Security ?

Comment configurer correctement CORS dans une application Spring Boot avec Spring Security ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-01 12:33:14419parcourir

How to Properly Configure CORS in a Spring Boot Application with Spring Security?

Configuration de CORS dans une application Spring Boot Spring Security

Problème

L'intégration de la prise en charge de CORS dans une application Spring Boot configurée avec Spring Security peut entraîner des problèmes inattendus Problèmes liés au CORS. Plus précisément, lors de l'utilisation d'AngularJS ou de JavaScript XMLHttpRequests, des codes d'état tels que « 0 » ou des corps de réponse vides peuvent être rencontrés lorsque l'authentification échoue, empêchant ainsi la gestion appropriée des erreurs au niveau du frontend.

Solution

Pour résoudre ce problème problème, activez explicitement la prise en charge de CORS dans Spring Security :

  1. Activez la prise en charge de CORS dans Spring Sécurité :

    @EnableWebSecurity
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.cors().and()... // Add additional security configuration here
        }
    }
  2. Utiliser la configuration globale CORS (facultatif) :

    Définir un bean CorsConfigurationSource :

    @Bean
    CorsConfigurationSource corsConfigurationSource() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues());
        return source;
    }

Cette configuration exploite la prise en charge CORS de Spring MVC et répond aux précédentes approches basées sur des filtres. Plus de détails peuvent être trouvés dans la documentation Spring Security CORS.

Notes supplémentaires

  • Le problème survient lorsque Spring Security redirige ou ne parvient pas à ajouter des en-têtes CORS pendant le processus d'authentification.
  • L'activation de la prise en charge de Spring Security CORS permet au framework d'exploiter la configuration CORS de Spring MVC.
  • Au niveau du contrôleur Les annotations @CrossOrigin sont prises en charge lorsque la prise en charge Spring Security CORS est activée.
  • Si l'authentification échoue, la réponse contiendra le code d'état et le corps appropriés, facilitant ainsi la gestion appropriée des erreurs dans l'interface.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn