Est-il possible de spécifier les origines de l'annotation @CrossOrigin
via une variable d'environnement? Je veux faire ceci afin que je puisse utiliser la même base de code pour uat/staging/production. Je souhaite que mes environnements uat/staging soient accessibles via localhost pour les tests, mais que mes environnements de production n'acceptent que les demandes provenant d'un point de terminaison spécifique.Spécification de @CrossOrigin orgins via une variable d'environnement
Par exemple, il s'agit de notre utilisateur d'annotation d'origine croisée pour une nouvelle API;
@CrossOrigin(origins = {"http://localhost:9000", "http://example.com"})
Cela fonctionne très bien. En testant sur ma machine locale, seul un serveur Web fonctionnant sur le port 9000 pourrait accéder à mon API. Je me suis alors tenté de mettre ma variable d'environnement sur ma machine windows locale
ALLOWED_ORIGINS = http://localhost:9000,http://example.com
J'ai ensuite changé l'annotation trop
@CrossOrigin(origins = "#{'${allowed.origins}'.split(',')}")
Et maintenant, les demandes sont bloquées en raison de CORS.
Comme question de suivi. Puis-je définir le port comme un caractère générique? Pour que n'importe quel serveur web localhost puisse accéder à l'API?
MISE À JOUR
donc j'ai pu réaliser la première partie de ma question via - https://spring.io/blog/2015/06/08/cors-support-in-spring-framework#filter-based-cors-support
et définissant la variable d'env pour allowedOrigins()
@Value("#{'${allowed.origins}'.split(',')}")
private List<String> allowedOrigins;
Cependant, pour la vie de moi Je n'arrive pas à obtenir une forme de joker/pattern. J'ai essayé les deux ci-dessous comme variables d'environnement;
http://localhost:*
http:\/\/localhost:[0-9]+
Je pourrais avoir à soulever cette question séparément.
Je n'utiliserai pas de configuration basée sur xml. J'ai aussi besoin de faire correspondre les modèles pour autoriser tous les ports locaux, donc il semblerait que je devrais utiliser le filtre CORS si je comprends bien les choses. – Jags
Utilisez-vous une configuration basée sur Java? – Paras
Oui, je suis. - https://spring.io/blog/2015/06/08/cors-support-in-spring-framework#filter-based-cors-support est la façon dont j'ai réussi à le faire fonctionner. – Jags