diff options
author | Olav Morken <olav.morken@uninett.no> | 2013-11-15 09:34:07 +0000 |
---|---|---|
committer | Olav Morken <olav.morken@uninett.no> | 2013-11-15 09:34:07 +0000 |
commit | 6f61aef12c6b1b02e32da6d1c696bee6d5f1e4dc (patch) | |
tree | f1d6c78ab5e2eec5f8b8121f9e1a838c28997fa6 /lib/SAML2/XML/md/EntityDescriptor.php | |
parent | e9c98e008ed7dbb5d642aa4788edd2510c952ca1 (diff) | |
download | simplesamlphp-6f61aef12c6b1b02e32da6d1c696bee6d5f1e4dc.zip simplesamlphp-6f61aef12c6b1b02e32da6d1c696bee6d5f1e4dc.tar.gz simplesamlphp-6f61aef12c6b1b02e32da6d1c696bee6d5f1e4dc.tar.bz2 |
Start using SAML2 library from GitHub.
This patch also starts using Composer for other dependencies
(i.e. php-openid and xmlseclibs).
Thanks to Boy Baukema for implementing this!
git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@3290 44740490-163a-0410-bde0-09ae8108e29a
Diffstat (limited to 'lib/SAML2/XML/md/EntityDescriptor.php')
-rw-r--r-- | lib/SAML2/XML/md/EntityDescriptor.php | 252 |
1 files changed, 0 insertions, 252 deletions
diff --git a/lib/SAML2/XML/md/EntityDescriptor.php b/lib/SAML2/XML/md/EntityDescriptor.php deleted file mode 100644 index 89c7dce..0000000 --- a/lib/SAML2/XML/md/EntityDescriptor.php +++ /dev/null @@ -1,252 +0,0 @@ -<?php - -/** - * Class representing SAML 2 EntityDescriptor element. - * - * @package simpleSAMLphp - * @version $Id$ - */ -class SAML2_XML_md_EntityDescriptor extends SAML2_SignedElementHelper { - - /** - * The entityID this EntityDescriptor represents. - * - * @var string - */ - public $entityID; - - - /** - * The ID of this element. - * - * @var string|NULL - */ - public $ID; - - - /** - * How long this element is valid, as a unix timestamp. - * - * @var int|NULL - */ - public $validUntil; - - - /** - * The length of time this element can be cached, as string. - * - * @var string|NULL - */ - public $cacheDuration; - - - /** - * Extensions on this element. - * - * Array of extension elements. - * - * @var array - */ - public $Extensions = array(); - - - /** - * Array with all roles for this entity. - * - * Array of SAML2_XML_md_RoleDescriptor objects (and subclasses of RoleDescriptor). - * - * @var array - */ - public $RoleDescriptor = array(); - - - /** - * AffiliationDescriptor of this entity. - * - * @var SAML2_XML_md_AffiliationDescriptor|NULL - */ - public $AffiliationDescriptor = NULL; - - - /** - * Organization of this entity. - * - * @var SAML2_XML_md_Organization|NULL - */ - public $Organization = NULL; - - - /** - * ContactPerson elements for this entity. - * - * @var array - */ - public $ContactPerson = array(); - - - /** - * AdditionalMetadataLocation elements for this entity. - * - * @var array - */ - public $AdditionalMetadataLocation = array(); - - - /** - * Initialize an EntitiyDescriptor. - * - * @param DOMElement|NULL $xml The XML element we should load. - */ - public function __construct(DOMElement $xml = NULL) { - parent::__construct($xml); - - if ($xml === NULL) { - return; - } - - if (!$xml->hasAttribute('entityID')) { - throw new Exception('Missing required attribute entityID on EntityDescriptor.'); - } - $this->entityID = $xml->getAttribute('entityID'); - - if ($xml->hasAttribute('ID')) { - $this->ID = $xml->getAttribute('ID'); - } - if ($xml->hasAttribute('validUntil')) { - $this->validUntil = SimpleSAML_Utilities::parseSAML2Time($xml->getAttribute('validUntil')); - } - if ($xml->hasAttribute('cacheDuration')) { - $this->cacheDuration = $xml->getAttribute('cacheDuration'); - } - - $this->Extensions = SAML2_XML_md_Extensions::getList($xml); - - for ($node = $xml->firstChild; $node !== NULL; $node = $node->nextSibling) { - if (!($node instanceof DOMElement)) { - continue; - } - - if ($node->namespaceURI !== SAML2_Const::NS_MD) { - continue; - } - - switch ($node->localName) { - case 'RoleDescriptor': - $this->RoleDescriptor[] = new SAML2_XML_md_UnknownRoleDescriptor($node); - break; - case 'IDPSSODescriptor': - $this->RoleDescriptor[] = new SAML2_XML_md_IDPSSODescriptor($node); - break; - case 'SPSSODescriptor': - $this->RoleDescriptor[] = new SAML2_XML_md_SPSSODescriptor($node); - break; - case 'AuthnAuthorityDescriptor': - $this->RoleDescriptor[] = new SAML2_XML_md_AuthnAuthorityDescriptor($node); - break; - case 'AttributeAuthorityDescriptor': - $this->RoleDescriptor[] = new SAML2_XML_md_AttributeAuthorityDescriptor($node); - break; - case 'PDPDescriptor': - $this->RoleDescriptor[] = new SAML2_XML_md_PDPDescriptor($node); - break; - } - } - - $affiliationDescriptor = SAML2_Utils::xpQuery($xml, './saml_metadata:AffiliationDescriptor'); - if (count($affiliationDescriptor) > 1) { - throw new Exception('More than one AffiliationDescriptor in the entity.'); - } elseif (!empty($affiliationDescriptor)) { - $this->AffiliationDescriptor = new SAML2_XML_md_AffiliationDescriptor($affiliationDescriptor[0]); - } - - if (empty($this->RoleDescriptor) && is_null($this->AffiliationDescriptor)) { - throw new Exception('Must have either one of the RoleDescriptors or an AffiliationDescriptor in EntityDescriptor.'); - } elseif (!empty($this->RoleDescriptor) && !is_null($this->AffiliationDescriptor)) { - throw new Exception('AffiliationDescriptor cannot be combined with other RoleDescriptor elements in EntityDescriptor.'); - } - - $organization = SAML2_Utils::xpQuery($xml, './saml_metadata:Organization'); - if (count($organization) > 1) { - throw new Exception('More than one Organization in the entity.'); - } elseif (!empty($organization)) { - $this->Organization = new SAML2_XML_md_Organization($organization[0]); - } - - foreach (SAML2_Utils::xpQuery($xml, './saml_metadata:ContactPerson') as $cp) { - $this->ContactPerson[] = new SAML2_XML_md_ContactPerson($cp); - } - - foreach (SAML2_Utils::xpQuery($xml, './saml_metadata:AdditionalMetadataLocation') as $aml) { - $this->AdditionalMetadataLocation[] = new SAML2_XML_md_AdditionalMetadataLocation($aml); - } - } - - - /** - * Create this EntityDescriptor. - * - * @param DOMElement|NULL $parent The EntitiesDescriptor we should append this EntityDescriptor to. - */ - public function toXML(DOMElement $parent = NULL) { - assert('is_string($this->entityID)'); - assert('is_null($this->ID) || is_string($this->ID)'); - assert('is_null($this->validUntil) || is_int($this->validUntil)'); - assert('is_null($this->cacheDuration) || is_string($this->cacheDuration)'); - assert('is_array($this->Extensions)'); - assert('is_array($this->RoleDescriptor)'); - assert('is_null($this->AffiliationDescriptor) || $this->AffiliationDescriptor instanceof SAML2_XML_md_AffiliationDescriptor'); - assert('is_null($this->Organization) || $this->Organization instanceof SAML2_XML_md_Organization'); - assert('is_array($this->ContactPerson)'); - assert('is_array($this->AdditionalMetadataLocation)'); - - if ($parent === NULL) { - $doc = new DOMDocument(); - $e = $doc->createElementNS(SAML2_Const::NS_MD, 'md:EntityDescriptor'); - $doc->appendChild($e); - } else { - $e = $parent->ownerDocument->createElementNS(SAML2_Const::NS_MD, 'md:EntityDescriptor'); - $parent->appendChild($e); - } - - $e->setAttribute('entityID', $this->entityID); - - if (isset($this->ID)) { - $e->setAttribute('ID', $this->ID); - } - - if (isset($this->validUntil)) { - $e->setAttribute('validUntil', gmdate('Y-m-d\TH:i:s\Z', $this->validUntil)); - } - - if (isset($this->cacheDuration)) { - $e->setAttribute('cacheDuration', $this->cacheDuration); - } - - SAML2_XML_md_Extensions::addList($e, $this->Extensions); - - foreach ($this->RoleDescriptor as $n) { - $n->toXML($e); - } - - if (isset($this->AffiliationDescriptor)) { - $this->AffiliationDescriptor->toXML($e); - } - - if (isset($this->Organization)) { - $this->Organization->toXML($e); - } - - foreach ($this->ContactPerson as $cp) { - $cp->toXML($e); - } - - foreach ($this->AdditionalMetadataLocation as $n) { - $n->toXML($e); - } - - $this->signElement($e, $e->firstChild); - - return $e; - } - -} |