From 9df140ba6ed4d485d9760bc9d584a356dbaed9dd Mon Sep 17 00:00:00 2001 From: Olav Morken <olav.morken@uninett.no> Date: Fri, 5 Mar 2010 15:12:00 +0000 Subject: [PATCH] SAML2_Utils: Add the new extractStrings()-function. git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@2199 44740490-163a-0410-bde0-09ae8108e29a --- lib/SAML2/Assertion.php | 5 +---- lib/SAML2/Utils.php | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/SAML2/Assertion.php b/lib/SAML2/Assertion.php index f5b670cc0..6bbe5621f 100644 --- a/lib/SAML2/Assertion.php +++ b/lib/SAML2/Assertion.php @@ -338,10 +338,7 @@ class SAML2_Assertion implements SAML2_SignedElement { } switch ($node->localName) { case 'AudienceRestriction': - $audiences = SAML2_Utils::xpQuery($node, './saml_assertion:Audience'); - foreach ($audiences as &$audience) { - $audience = trim($audience->textContent); - } + $audiences = SAML2_Utils::extractStrings($node, './saml_assertion:Audience'); if ($this->validAudiences === NULL) { /* The first (and probably last) AudienceRestriction element. */ $this->validAudiences = $audiences; diff --git a/lib/SAML2/Utils.php b/lib/SAML2/Utils.php index 45bd0bbc4..8cf84426a 100644 --- a/lib/SAML2/Utils.php +++ b/lib/SAML2/Utils.php @@ -348,4 +348,23 @@ class SAML2_Utils { return $ret; } + + /** + * Extract strings from a set of nodes. + * + * @param DOMElement $parent The element we should rund the XPath query on. + * @param string $query The XPath query we should use to retrieve the nodes. + * @return array The string values of the various nodes. + */ + public static function extractStrings(DOMElement $parent, $query) { + assert('is_string($query)'); + + $ret = array(); + foreach (self::xpQuery($parent, $query) as $node) { + $ret[] = trim($node->textContent); + } + + return $ret; + } + } -- GitLab