<?php require_once('SimpleSAML/Configuration.php'); require_once('SimpleSAML/Session.php'); require_once('SimpleSAML/Utilities.php'); require_once('SimpleSAML/Metadata/MetaDataStorageHandler.php'); require_once('xmlseclibs.php'); /** * Abstract class of an Authentication response * * @author Andreas �kre Solberg, UNINETT AS. <andreas.solberg@uninett.no> * @package simpleSAMLphp * @version $Id$ * @abstract */ abstract class SimpleSAML_XML_AuthnResponse { private $configuration = null; private $metadata = 'default.php'; private $message = null; private $dom; private $relayState = null; private $validIDs = null; const PROTOCOL = 'urn:oasis:names:tc:SAML:2.0'; function __construct(SimpleSAML_Configuration $configuration, SimpleSAML_Metadata_MetaDataStorageHandler $metadatastore) { $this->configuration = $configuration; $this->metadata = $metadatastore; } abstract public function validate(); abstract public function createSession(); abstract public function getAttributes(); abstract public function getIssuer(); abstract public function getNameID(); public function setXML($xml) { $this->message = $xml; } public function getXML() { return $this->message; } public function setRelayState($relayState) { $this->relayState = $relayState; } public function getRelayState() { return $this->relayState; } public function getDOM() { if (isset($this->message) ) { if (isset($this->dom)) { return $this->dom; } $token = new DOMDocument(); $token->loadXML(str_replace ("\r", "", $this->message)); if (empty($token)) { throw new Exception("Unable to load token"); } $this->dom = $token; return $this->dom; } return null; } public static function generateID() { $length = 42; $key = "_"; for ( $i=0; $i < $length; $i++ ) { $key .= dechex( rand(0,15) ); } return $key; } public static function generateIssueInstant($offset = 0) { return gmdate("Y-m-d\TH:i:s\Z", time() + $offset); } } ?>