我正在尝试实现这里找到的这个基本示例:
在标题为“作为 Zend_Auth 的一部分使用”的部分下。
我有 Zend Framework 1.10 版、Apache 2.2.11,并且我正在使用带有“Cardspace for Firefox 3”扩展的 Firefox。
登录页面出现(从文档中的示例复制),我可以选择一个信息卡(从卡选择器)并“发送”它,但返回时出现错误:
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)有关。