Utiliser un proxy

Lorsque vous déployez une application, vous devez généralement utiliser un proxy. Web AppBuilder prend en charge l’utilisation des proxy dans les situations suivantes :

  • Accès à des ressources interdomaines
  • Requêtes dépassant 2048 caractères
  • Accès à des ressources sécurisées par authentification à base de jetons
  • Identifiants de connexion d’application OAuth 2.0.
  • Activation de la consignation
  • Limitation de débit basée sur la ressource et le référant

Par défaut, l’application téléchargée utilise le proxy fourni par ArcGIS Online. Spécifiez votre proxy et vos règles en modifiant la propriété httpProxy dans le fichier de configuration de l’application. La propriété httpProxy contient les attributs suivants :

AttributDescription

useProxy

Booléen. Facultatif. Valeur par défaut : true (vrai). Si la valeur est false (faux), les requêtes n’utilisent aucun proxy.

url

Chaîne. Facultatif. URL indiquant l’emplacement du proxy. Si la requête ne correspond à aucune règle de proxy, mais qu’un proxy doit être utilisé, par exemple dans le cas d’une requête interdomaines, alors ce proxy sera utilisé.

alwaysUseProxy

Booléen. Facultatif. Indique si le proxy doit toujours être utilisé pour assurer la communication avec une extrémité REST. Valeur par défaut : false (faux). Si la requête ne correspond à aucune règle de proxy et qu’aucun proxy n’est nécessaire, l’application vérifie cette propriété pour déterminer comment utiliser le proxy ultérieurement. Si la valeur est False (faux), la requête n’est pas transmise au proxy référencé par url. Si la valeur est True (vrai), la requête est transmise au proxy référencé par url.

règle

Objet[]. Facultatif. Définit le proxy pour un jeu de ressources présentant le même préfixe d’URL. Si l’URL de demande correspond à une règle, la requête est acheminée via le proxy. Chaque règle a deux propriétés :

  • urlPrefix-string : préfixe de l’URL pour les ressources qui doivent être accessibles via le proxy spécifié.
  • proxyUrl-string : URL du proxy.

Attention :

Lorsque useProxy a la valeur False (faux) et qu’une requête est supérieure à 2 048 caractères, une requête POST est envoyée à la place d’une requête GET. De plus, si le service prend en charge CORS, la requête POST peut être envoyée directement au service. Sinon, la requête POST échoue. Lorsque useProxy a la valeur True et qu’une requête POST est envoyée, si le service ne prend pas en charge CORS, la requête POST est envoyée automatiquement par le proxy.

L’exemple suivant illustre le fonctionnement des proxy avec les attributs ci-dessus :

  • L’application vérifie useProxy.
    • Si la valeur est false (faux), les requêtes n’utilisent aucun proxy.
    • Si la valeur est True (vrai), l’application vérifie rules.
      • Si la requête correspond aux règles de proxy, l’application utilise le jeu proxyUrl dans les règles.
      • Si la requête ne correspond à aucune règle de proxy, mais qu’un proxy doit être utilisé, par exemple dans le cas d’une requête interdomaines, l’application utilise le proxy référencé par url.
      • Si la requête ne correspond à aucune règle de proxy et si aucun proxy n’est nécessaire, l’application vérifie ensuite alwaysUseProxy.
        • Si la valeur est False (faux), la requête n’est pas transmise au proxy référencé par url.
        • Si la valeur est True (vrai), la requête est transmise au proxy référencé par url.
Diagramme du proxy

Exemple :

"httpProxy": {
		"useProxy": true,
		"url": "http://gallery.chn.esri.com/arcgis/sharing/proxy",
		"alwaysUseProxy": false,
		"rules": [{
			"urlPrefix": "http://route.arcgis.com/",
			"proxyUrl": "resource-proxy-1.0/DotNet/proxy.ashx"
		}]
	}