Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

12oct/098

Flex Modules – Chargement de Modules depuis des serveurs différents (allowDomain)

Un module Flex est un fichier SWF que l'on peut charger dans une application mère. Si vous charger un module en ligne qui se trouve sur le même serveur que l'application principale, vous n'aurez aucun problème. Cependant, pour charger un module depuis un autre serveur, vous devez indiquer au module et à l'application, les domaines auxquels ils peuvent accéder.

Permettre l'accès entre les domaines

  1. Dans votre application mère, vous devez appeler la méthode allowDomain() et spécifier un domaine cible depuis lequel vous allez charger votre module. Faîtes bien cette étape au moment de l'évènement preinitialize de votre application pour vous assurer que l'application est bien en place avant le chargement du module.
  2. Dans le fichier cross-domain.xml du serveur distant où se trouve votre moule, ajoutez une entrée qui spécifie le serveur sur lequel l'application à charger se trouve.
  3. Chargez le fichier cross-domain du serveur distant lors du preinitialize de votre application.
  4. Dans le module chargé, appelez la méthode allowDomain() pour qu'il puisse communiquer avec l'application que le charge.

L'exemple suivant montre la méthode init() de l'application mère:

public function setup():void {
 Security.allowDomain("remoteservername");
 Security.loadPolicyFile("http://remoteservername/crossdomain.xml");
 var request:URLRequest = new URLRequest("http://remoteservername/crossdomain.xml");
 var loader:URLLoader = new URLLoader();
 loader.load(request);
}

Le code suivant montre la méthode init() du module chargé:

public function initMod():void {
 Security.allowDomain("loaderservername");
}

Et voici le fichier crossdomain.xml à placer à la base du serveur distant:

<!-- crossdomain.xml file located at the root of the server -->
<cross-domain-policy>
 <allow-access-from domain="loaderservername" to-ports="*"/>
</cross-domain-policy>
Remplis sous: Modules 8 Commentaires
6août/085

Création d'Applications Flex – Flash Player Security (crossdomain)

Flash Player applique des règles de sécurité pour l'accès à la données depuis une application. Les applications Flex peuvent accéder toutes les sources de données qui sont sur le même domaine que le SWF. Par exemple, si le SWF est déployé sur www.exemple.com, il peut accéder à un webservice qui est déployé sur www.exemple.com.
Cependant, l'accès aux données sur différents domaines est interdit par le Flash Player, sauf si le domaine lui donne la permission explicite. Les règles de sécurité de Flash Player interdisent l'accès à la donnée si les domaines ne correspondent pas exactement, y compris les sous-domaines. Cela veut dire qu'un SWF déployé sur www.exemple.com ne peut pas accéder les données de test.exemple.com ou même exemple.com sauf si le serveur lui donne l'accès.
Pour que le serveur donne l'accès aux données, on utilise un fichier appelé cross-domain.