I'm trying to implement this basic example found here:
under the section titled "Using as part of Zend_Auth".
I have the Zend Framework version 1.10, Apache 2.2.11 and I'm using Firefox with the "Cardspace for Firefox 3" extension.
The login page comes up (as copied from the example in the document开发者_C百科ation) and I'm able to chose an info card (from the card selector) and "send" it but I get an error on the return:
array
0 => string 'Processing Failure' (length=18)
1 => string 'Failed to extract assertion document' (length=36)
In debugging this error, the error is caused by the following lines of code (where the exception is thrown because no type exists):
In Zend_InfoCard_Xml_EncryptedData->getInstance() the following code exists:
$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;
The problem is that I have no 'Type' in my xml when I dump it out.
The xml looks something like this:
<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">
....and goes on (with a signature value and other items, but again no type).
Obviously I'm doing something wrong here. I wonder if it's related to the firefox plugin or by lack of using SSL (not using SSL right now).
From the documentation (http://framework.zend.com/manual/en/zend.infocard.basics.html#zend.infocard.basics.theory - at the bottom):
Note, Information cards can only be HTTP POSTed to SSL-encrypted URLs. Please consult your web server's documentation on how to set up SSL encryption.
精彩评论