Activation de CORS

Cross-Origin Resource Sharing (CORS) est une norme W3C qui permet le partage de données entre domaines. CORS permet à des applications Web exécutées dans un domaine d'accéder aux données d'un autre domaine. En activant CORS sur votre serveur Spectrum™ Technology Platform, vous pouvez autoriser des applications Web hébergées dans un autre domaine à accéder à des services Web Spectrum™ Technology Platform.

Par exemple, imaginons que vous disposiez d'une application Web hébergée dans webapp.example.com. Cette application Web contient une fonction JavaScript qui appelle un service Web Spectrum™ Technology Platform hébergé dans spectrum.example.com. Sans CORS, vous devez utiliser un serveur proxy pour permettre cette requête, ce qui complique votre déploiement. Avec CORS, vous n'avez pas besoin d'utiliser de serveur proxy. À la place, vous pouvez désigner webapp.example.com comme une « origine autorisée », ce qui permet à Spectrum™ Technology Platform de répondre aux requêtes de service Web provenant du domaine webapp.example.com.

Pour activer les CORS sur votre serveur Spectrum™ Technology Platform :

  1. Arrêtez le serveur Spectrum™ Technology Platform.
  2. Ouvrez ce fichier dans un éditeur de texte :

    SpectrumLocation/server/app/conf/spectrum-advanced.properties

  3. Indiquez les paramètres suivants.
    spectrum.jetty.cors.enabled

    Définissez cette propriété sur true pour activer CORS. La valeur par défaut est false.

    spectrum.jetty.cors.allowedOrigins

    Liste d'origines séparées par des virgules autorisées à accéder aux ressources du serveur Spectrum™ Technology Platform. La valeur par défaut est http://localhost:8080,http://localhost:443, ce qui autorise l'accès aux ressources via le port HTTP par défaut 8080 et le port HTTPS par défaut 443.

    Si une origine autorisée contient un ou plusieurs astérisques (« * »), par exemple, http://*.domain.com, les astérisques sont convertis en .* et les caractères de type point (« . ») sont remplacés par « \ ». L'origine autorisée obtenue est alors interprétée comme une expression régulière. Les origines autorisées peuvent par conséquent être des expressions plus complexes telles que https?://*.domain.[a-z]{3}, qui correspond à http ou https, à plusieurs sous-domaines et à tout domaine de niveau supérieur à trois lettres (.com, .net, .org, etc.).

    spectrum.jetty.cors.allowedMethods

    Liste de méthodes HTTP séparées par des virgules pouvant être utilisées lors de l'accès aux ressources du serveur Spectrum™ Technology Platform. La valeur par défaut est POST,GET,OPTIONS,PUT,DELETE,HEAD.

    spectrum.jetty.cors.allowedHeaders

    Liste d'en-têtes HTTP séparés par des virgules autorisés lors de l'accès aux ressources du serveur Spectrum™ Technology Platform. La valeur par défaut est X-PINGOTHER, Origin, X-Requested-With, Content-Type, Accept. Si la valeur est un seul astérisque (« * »), tous les en-têtes sont acceptés.

    spectrum.jetty.cors.preflightMaxAge

    Nombre de secondes pendant lesquelles les requêtes pré-envoi peuvent être mises en cache par le client. La valeur par défaut est 1800 secondes, ou 30 minutes.

    spectrum.jetty.cors.allowCredentials

    Indique si la ressource accepte les demandes avec des informations d'identification. La valeur par défaut est true.

  4. Enregistrez et fermez le fichier.
  5. Démarrez le serveur Spectrum™ Technology Platform.