2009-09-02 8 views
1

J'héberge un service Java et une application Flex sur le même serveur. L'application flexible accède au service Java. Au fur et à mesure que l'application Flex se charge, j'obtiens une erreur de sécurité, comment cela peut-il se produire? Je pensais que je n'ai pas besoin d'un fichier crossdomain.xml lors de l'hébergement sur le même serveur.Même domaine mais erreur de sécurité

Mon application flex récupère les données via un service http qui envoie des appels à 1.2.3.4:9000/service, l'application Flex se trouve sur 5.6.7.8/test.swf, mon crossdomain.xml ressemble à la

suivante
<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <allow-access-from domain="5.6.7.8" to-ports="*" /> 
</cross-domain-policy> 

Il est accessible depuis 1.2.3.4:9000/crossdomain.xml. Notez que tout fonctionne lorsque j'utilise domain = "*" au lieu de domaine = "1.2.3.4"

J'espère que quelqu'un peut me aider

Sebastian

+0

Quelle sorte d'erreur de sécurité? Pouvez-vous poster les détails? –

+0

Destination: DefaultHttp J'ai obtenu à partir des détails de l'événement FaultEvent ou que voulez-vous dire? –

Répondre

4

Si votre application Flex est sur le serveur avec l'adresse IP 5.6.7.8, vous devez autoriser cette adresse IP dans le domaine croisé du serveur 1.2.3.4. Ceci laisse le Flash courant du 5.6.7.8 sachez que 1.2.3.4 permet des connexions de cette adresse spécifique. Si vous avez toujours le même problème, un moyen rapide de savoir ce qui se passe est d'utiliser un proxy de débogage (j'aime Charles). De cette façon, vous verrez une requête flash pour le fichier crossdomain.xml et à quoi ressemblera la réponse, très probablement la requête va dans un endroit auquel vous ne vous attendiez pas ou que le serveur détruit d'une manière ou d'une autre.

+0

Ceci est correct. Par défaut, un fichier SWF chargé depuis le domaine X peut uniquement accéder aux services du domaine X. Si le fichier SWF veut accéder à des services du domaine Y, il doit avoir un fichier crossdomain.xml qui accorde l'accès au domaine X. –

+0

l'a fait de cette façon ... J'ai éditer le xml ci-dessus –

+0

j'ai ajouté quelques autres suggestions à ma réponse – grapefrukt

1

Utilisez-vous Sockets?

Dans ce cas, vous devez traiter des fichiers de stratégie avec votre serveur Java existant ou un serveur autonome.

http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

+0

Je sers le fichier de politique avec le serveur. J'héberge mon service sous 1.2.3.4:9000/service et le fichier crossdomain sous 1.2.3.4:9000/crossdomain.xml quand j'ai allow_site_access mis à * tout fonctionne bien mais quand je mets le domaine à 1.2.3.4 l'erreur se produit –

1

Est-ce que 1.2.3.4 représente une adresse IP? Si oui, je crois que vous devez utiliser un nom de domaine ici pas une adresse IP, sinon vous pourriez avoir plusieurs domaines sur le même serveur et contourner les mêmes contrôles de domaine.

+0

mais je peux accéder au service directement avec cette adresse –

Questions connexes