-
Olav Morken authored
git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@226 44740490-163a-0410-bde0-09ae8108e29a
Olav Morken authoredgit-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@226 44740490-163a-0410-bde0-09ae8108e29a
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
AuthnResponse.php 2.01 KiB
<?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);
}
}
?>