Viewing file: SubjectConfirmation.php (2.38 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/** * Class representing SAML 2 SubjectConfirmation element. * * @package simpleSAMLphp * @version $Id$ */ class SAML2_XML_saml_SubjectConfirmation {
/** * The method we can use to verify this Subject. * * @var string */ public $Method;
/** * The NameID of the entity that can use this element to verify the Subject. * * @var SAML2_XML_saml_NameID|NULL */ public $NameID;
/** * SubjectConfirmationData element with extra data for verification of the Subject. * * @var SAML2_XML_saml_SubjectConfirmationData|NULL */ public $SubjectConfirmationData;
/** * Initialize (and parse? a SubjectConfirmation element. * * @param DOMElement|NULL $xml The XML element we should load. */ public function __construct(DOMElement $xml = NULL) {
if ($xml === NULL) { return; }
if (!$xml->hasAttribute('Method')) { throw new Exception('SubjectConfirmation element without Method attribute.'); } $this->Method = $xml->getAttribute('Method');
$nid = SAML2_Utils::xpQuery($xml, './saml_assertion:NameID'); if (count($nid) > 1) { throw new Exception('More than one NameID in a SubjectConfirmation element.'); } elseif (!empty($nid)) { $this->NameID = new SAML2_XML_saml_NameID($nid[0]); }
$scd = SAML2_Utils::xpQuery($xml, './saml_assertion:SubjectConfirmationData'); if (count($scd) > 1) { throw new Exception('More than one SubjectConfirmationData child in a SubjectConfirmation element.'); } elseif (!empty($scd)) { $this->SubjectConfirmationData = new SAML2_XML_saml_SubjectConfirmationData($scd[0]); } }
/** * Convert this element to XML. * * @param DOMElement $parent The parent element we should append this element to. * @return DOMElement This element, as XML. */ public function toXML(DOMElement $parent) { assert('is_string($this->Method)'); assert('is_null($this->NameID) || $this->NameID instanceof SAML2_XML_saml_NameID'); assert('is_null($this->SubjectConfirmationData) || $this->SubjectConfirmationData instanceof SAML2_XML_saml_SubjectConfirmationData');
$e = $parent->ownerDocument->createElementNS(SAML2_Const::NS_SAML, 'saml:SubjectConfirmation'); $parent->appendChild($e);
$e->setAttribute('Method', $this->Method);
if (isset($this->NameID)) { $this->NameID->toXML($e); } if (isset($this->SubjectConfirmationData)) { $this->SubjectConfirmationData->toXML($e); }
return $e; }
}
|