Zend_Infocard как часть аутентификации Zend

Я пытаюсь реализовать этот базовый пример, найденный здесь:

в разделе "Использование в качестве части Zend_Auth".

У меня Zend Framework версии 1.10, Apache 2.2.11, и я использую Firefox с расширением "Cardspace for Firefox 3".

Страница логина появляется (как скопировано из примера в документации), и я могу выбрать информационную карточку (из селектора карточек) и "отправить" ее, но я получаю ошибку при возврате:

array
0 => string 'Processing Failure' (length=18)
1 => string 'Failed to extract assertion document' (length=36)

При отладке этой ошибки ошибка вызвана следующими строками кода (где генерируется исключение, потому что нет типа):

В Zend_InfoCard_Xml_EncryptedData->getInstance() существует следующий код:

$sxe = simplexml_load_string($strXmlData);
switch($sxe['Type']) {
    case 'http://www.w3.org/2001/04/xmlenc#Element':
        include_once 'Zend/InfoCard/Xml/EncryptedData/XmlEnc.php';
        return simplexml_load_string($strXmlData, 'Zend_InfoCard_Xml_EncryptedData_XmlEnc');
    default:
        require_once 'Zend/InfoCard/Xml/Exception.php';
        throw new Zend_InfoCard_Xml_Exception("Unknown EncryptedData type found");
break;

Проблема в том, что у меня нет "Типа" в моем xml, когда я выкидываю его.

XML выглядит примерно так:

<saml:Assertion MajorVersion="1" MinorVersion="1" AssertionID="SamlSecurityToken-9f068262-1b53-5cac-844e-624d589f9373" Issuer="http://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self" IssueInstant="2010-07-08T15:08:48.343Z" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">

.... и продолжается (со значением подписи и другими элементами, но опять же без типа).

Очевидно, я делаю что-то не так здесь. Интересно, связано ли это с плагином Firefox или с отсутствием использования SSL (сейчас не используется SSL).

1 ответ

Решение

Из документации ( http://framework.zend.com/manual/en/zend.infocard.basics.html - внизу):

Обратите внимание, что информационные карточки могут быть отправлены только по HTTP на URL-адреса с шифрованием SSL. Пожалуйста, обратитесь к документации вашего веб-сервера о том, как настроить шифрование SSL.

Другие вопросы по тегам