web-dev-qa-db-fra.com

Comment activer CORS dans Apache Tomcat

J'essaie de consommer certains services Web interdomaines. Lorsque je désactive la sécurité Web de Chrome, cela fonctionne bien. Je veux que cela fonctionne sans cela, j'ai donc essayé d'ajouter cross-domain.xml et cela n'a toujours pas fonctionné. Quand j'ai cherché plus, j'ai découvert l'activation de CORS dans Tomcat.

de http://www.w3.org/wiki/CORS_Enabled


Pour Apache Apache peut être configuré pour exposer cet en-tête à l'aide de mod_headers. Ceci est activé par défaut dans Apache, mais vous pouvez vous assurer qu'il est activé dans votre déploiement en exécutant la commande suivante:

a2enmod headers

Pour exposer l'en-tête, vous pouvez ajouter la ligne suivante à l'intérieur des sections, et, ou dans un fichier .htaccess.

<IfModule mod_headers.c>
   Header set Access-Control-Allow-Origin "*"
 </IfModule>

Quelqu'un peut-il me faire savoir où ajouter ces configurations dans Tomcat et dans quels fichiers exactement . J'utilise Tomcat d'Eclipse.

Appréciez toute aide.

20
Ravi Dasari

La prise en charge de CORS dans Tomcat est fournie via un filtre. Vous devez ajouter ce filtre à votre fichier web.xml et le configurer en fonction de vos besoins. Vous trouverez tous les détails sur les options de configuration disponibles dans Documentation Tomcat .

12
Mark Thomas

Cochez cette réponse: Définir l'en-tête CORS dans Tomcat

Notez que vous avez besoin de Tomcat 7.0.41 ou supérieur.

Pour savoir où se trouve l'instance actuelle de Tomcat, essayez ceci:

System.out.println(System.getProperty("catalina.base"));

Vous verrez le chemin dans la vue de la console.

Recherchez ensuite /conf/web.xml dans ce dossier, ouvrez-le et ajoutez les lignes du lien ci-dessus.

6
jose

Juste pour ajouter un peu d'informations supplémentaires sur la bonne solution. Sachez que vous aurez besoin de cette classe org.Apache.catalina.filters.CorsFilter. Donc, pour l'avoir, si votre Tomcat n'est pas 7.0.41 ou supérieur, téléchargez 'Tomcat-catalina.7.0.41.jar' ou supérieur (vous pouvez le faire à partir de http://mvnrepository.com/ artifact/org.Apache.Tomcat/tomcat-catalina ) et placez-le dans le dossier "lib" des dossiers d'installation de Tomcat. J'ai utilisé la version 7.0.42 J'espère que ça aide!

1