Pregunta

Tengo un mecanismo de autorización básica en el servidor para WSDL / SOAP. Cómo puedo enviar "Autorización" encabezado a través de Flex WebService?

Ejemplo simplificado:

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();

Y recibo un error:

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

La aplicación Flex y el servidor están en el mismo dominio. También tengo el archivo crossdomain.xml en la raíz de mi servidor ( http: // localhost: 8000 / crossdomain.xml ) pero nunca lo llama Flex (lo sé por los archivos de registro). Proporcionaré este archivo de todos modos:

<?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>

Gracias Zinovii

¿Fue útil?

Solución

Nunca he tenido que hacer esto antes en Flex, pero ¿qué versión del complemento Flash está ejecutando? Versión 9.0.115.0. bloquea completamente el uso de ese encabezado, mientras que las versiones posteriores lo permiten con su configuración crossdomain.xml.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top