Как передать заголовок авторизации из Flex WebService?

У меня есть базовый механизм авторизации на сервере для WSDL / SOAP. Как я могу отправить заголовок «Авторизация» через Flex WebService?

Упрощенный пример:

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

И я получаю сообщение об ошибке:

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

Приложение Flex и сервер находятся в одном домене. Также у меня есть файл crossdomain.xml в корне моего сервера (http://localhost:8000/crossdomain.xml), но он никогда не вызывается flex (я знаю из файлов журнала). Я все равно предоставлю этот файл:

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

Спасибо, Зиновий


person tefozi    schedule 24.06.2009    source источник


Ответы (1)


Мне никогда раньше не приходилось делать это в Flex, но какая версия плагина Flash у вас установлена? Версия 9.0.115.0. полностью блокирует использование этого заголовка, в то время как более поздние версии разрешают это с вашей конфигурацией crossdomain.xml.

person Jamie Love    schedule 24.06.2009
comment
Ооо! Я использую именно эту версию 9.0.115.0 на Ubuntu из сборщика Adobe Flex для Linux. - person tefozi; 25.06.2009
comment
Я дважды проверяю эту проблему. Вот в чем проблема. На более поздних версиях работает нормально. Также была решена проблема, связанная с тем, что flex не вызывал crossdomain.xml с сервера. Когда вы находитесь в режиме DEBUG, Flex не вызывает crossdomain.xml (по какой-то странной причине), но когда вы RELEASE, он вызывает crossdomain.xml с сервера. - person tefozi; 25.06.2009
comment
Полезно знать о различиях между отладкой и выпуском crossdomain.xml. Спасибо! - person Jamie Love; 25.06.2009