2009-06-24 7 views
1

J'ai un mécanisme d'autorisation de base sur le serveur pour WSDL/SOAP. Comment envoyer l'en-tête "Autorisation" via Flex WebService?Comment passer l'en-tête Autorisation de Flex WebService?

Exemple simplifié:

var ws:WebService = new WebService(); 
ws.wsdl = "http://localhost:8000/api/service.wsdl" 

var encoder:Base64Encoder = new Base64Encoder(); 
encoder.insertNewLines = false; 
encoder.encode("SomeUser:SomePassword"); 

ws.httpHeaders = {AUTHORIZATION : "Basic " + encoder.toString()}; 

ws.loadWSDL(); 

var operation:AbstractOperation = ws.get_info; 
operation.send(); 

Et je reçois une erreur:

Error #2096: The HTTP request header AUTHORIZATION cannot be set via ActionScript. 

application Flex et le serveur sont dans le même domaine. J'ai aussi un fichier crossdomain.xml à la racine de mon serveur (http://localhost:8000/crossdomain.xml) mais il n'est jamais appelé par flex (je sais à partir des fichiers journaux). Je fournirai ce dossier de toute façon:

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <allow-access-from domain="*"/> 
    <site-control permitted-cross-domain-policies="all"/> 
    <allow-http-request-headers-from domain="*" headers="*"/> 
</cross-domain-policy> 

Merci, Zinovii

Répondre

2

Je ne l'ai jamais eu à le faire auparavant dans Flex, mais quelle version du plugin Flash Courez-vous? Version 9.0.115.0. bloque complètement l'utilisation de cet en-tête, tandis que les versions ultérieures le permettent avec votre configuration crossdomain.xml.

+0

D'oh! Je cours exactement cette version 9.0.115.0 sur Ubuntu d'Adobe Flex Builder pour Linux. – zinovii

+0

Je revérifie ce problème. C'était le problème. Sur les versions ultérieures fonctionne très bien. Le problème que flex n'a pas appelé crossdomain.xml du serveur a également été résolu. Lorsque vous êtes en mode DEBUG, Flex n'appelle pas crossdomain.xml (pour une raison étrange) mais lorsque vous libérez, il appelle crossdomain.xml du serveur. – zinovii

+0

Bon à savoir à propos de la différence de débogage/diffusion crossdomain.xml. Merci! –