Printemps de Démarrage de la SCRO - filtre de la SCRO de contrôle en amont du canal n'a pas réussi
J'ai besoin d'ajouter de la SCRO filtre de mon Ressort de Démarrage de l'application web.
J'ai ajouté de la SCRO les mappages de la manière décrite dans la documentation suivante http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cors.html
C'est ma config:
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
//@formatter:off
registry
.addMapping("/**")
.allowedOrigins(CrossOrigin.DEFAULT_ORIGINS)
.allowedHeaders(CrossOrigin.DEFAULT_ALLOWED_HEADERS)
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.maxAge(3600L);
//@formatter:on
}
...
}
Maintenant, quand j'essaye d'accéder à mon API-ce que je reçois un message d'erreur suivant:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com/api/v1.0/user. (Reason: CORS preflight channel did not succeed).
C'est une capture d'écran de FF console:
Ce que je fais mal et comment le configurer correctement la SCRO des en-têtes pour éviter ce problème ?
OriginalL'auteur alexanoid | 2016-04-23
Vous devez vous connecter pour publier un commentaire.
J'ai résolu ce problème en créant un nouveau CORS du Filtre:
et de l'ajouter à instaler configuration:
Mise à JOUR - Plus moderne de nos jours qui, je suis passé à:
J'ai utilisé l'exemple ci-dessus le code et les autres aussi, mais aucun d'entre eux travaillaient sur le niveau de l'application. Finalement, j'ai mis de la SCRO sur le contrôleur de niveau.
Notre projet n'est pas MVC et votre pas de solution mise à jour aidé.
OriginalL'auteur alexanoid
Eu le même problème l'obtention de la SCRO à travailler avec les données du printemps reste, c'était le filtre code que j'ai utilisé.
OriginalL'auteur Romell
Pour ce que sa vaut le coup, la combinaison suivante de la solution a fonctionné pour moi:
1.
2.
@CrossOrigin
sur le RestController classe. Ayant@CrossOrigin
lit le@RequestMapping
les annotations et les méthodes du protocole HTTP. Reste des demandes sont rejetées avec la SCRO erreur.Mais vous serez hors de la chance avec la solution ci-dessus si vous souhaitez utiliser le printemps de sécurité dans votre projet.
Je suis en utilisant le printemps de démarrage de la version 1.5.4.La LIBÉRATION.
OriginalL'auteur Vijay Kalidindi
Une manipulation adéquate de la préparation du vol des OPTIONS de la demande est nécessaire, mais PAS SUFFISANTE pour le cross-site ressource des demandes de travail.
Après la demande d'OPTIONS de revient de manière satisfaisante des en-têtes, toutes les réponses à toutes les demandes ultérieures vers la même URL aussi avoir le nécessaire "Access-Control-Allow-Origin" en-tête, sinon le navigateur va les avaler, et ils ne vont même pas s'afficher dans la fenêtre du débogueur.
https://stackoverflow.com/a/11951532/5649869
curl -H "Origin: http://127.0.0.1" --verbose http://127.0.0.1/api/v1.0/user
. Vous devez voir Contrôle d'Accès-Admis-* les en-têtes de réponse. Et enfin, essayez de vous préciser hôte (127.0.0.1 ou qch. d'autre) dans AllowedOrigin.J'ai essayé
allowedHeaders("xsrf-token").exposedHeaders("xsrf-token")
mais ne peut toujours pas de travail. Je pense que j'ai besoin de quelque chose comme cela -if ("OPTIONS".equals(request.getMethod())) { response.setStatus(HttpServletResponse.SC_OK); }
mais je ne sais pas comment ajouter cette logique dansCorsRegistry registry
OriginalL'auteur Алексей Романов
Actuellement recommandées façon de faire de la SCRO est
C'est la base sur https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-cors
Mais vous devez également vous assurer que la SCRO est activé et CSRF est désactivé dans votre WebSecurityConfig fichier.
Une fois, j'ai eu un problème où tous mes POST méthodes ne fonctionnent pas (de retour 403 forbiden), tandis que d'OBTENIR des méthodes de travail très bien, mais c'est résolu après CSRF est invalide
OriginalL'auteur Bamtak
si à l'aide de spring-boot 2 code ci-dessous est suffisant pour résoudre la question de la scro et contrôler en amont la question
OriginalL'auteur Niranjan Panigrahi