summaryrefslogtreecommitdiffstats
path: root/lib/SAML2
diff options
context:
space:
mode:
Diffstat (limited to 'lib/SAML2')
-rw-r--r--lib/SAML2/Assertion.php7
-rw-r--r--lib/SAML2/Utils.php27
2 files changed, 28 insertions, 6 deletions
diff --git a/lib/SAML2/Assertion.php b/lib/SAML2/Assertion.php
index 4144964..de3ca91 100644
--- a/lib/SAML2/Assertion.php
+++ b/lib/SAML2/Assertion.php
@@ -1070,12 +1070,7 @@ class SAML2_Assertion implements SAML2_SignedElement {
$ar = $document->createElementNS(SAML2_Const::NS_SAML, 'saml:AudienceRestriction');
$conditions->appendChild($ar);
- foreach ($this->validAudiences as $audience) {
- $a = $document->createElementNS(SAML2_Const::NS_SAML, 'saml:Audience');
- $ar->appendChild($a);
-
- $a->appendChild($document->createTextNode($audience));
- }
+ SAML2_Utils::addStrings($ar, SAML2_Const::NS_SAML, 'saml:Audience', FALSE, $this->validAudiences);
}
}
diff --git a/lib/SAML2/Utils.php b/lib/SAML2/Utils.php
index 42b5c55..e2ae335 100644
--- a/lib/SAML2/Utils.php
+++ b/lib/SAML2/Utils.php
@@ -388,4 +388,31 @@ class SAML2_Utils {
return $n;
}
+
+ /**
+ * Append string elements.
+ *
+ * @param DOMElement $parent The parent element we should append the new nodes to.
+ * @param string $namespace The namespace of the created elements
+ * @param string $name The name of the created elements
+ * @param bool $localized Whether the strings are localized, and should include the xml:lang attribute.
+ * @param array $values The values we should create the elements from.
+ */
+ public static function addStrings(DOMElement $parent, $namespace, $name, $localized, array $values) {
+ assert('is_string($namespace)');
+ assert('is_string($name)');
+ assert('is_bool($localized)');
+
+ $doc = $parent->ownerDocument;
+
+ foreach ($values as $index => $value) {
+ $n = $doc->createElementNS($namespace, $name);
+ $n->appendChild($doc->createTextNode($value));
+ if ($localized) {
+ $n->setAttribute('xml:lang', $index);
+ }
+ $parent->appendChild($n);
+ }
+ }
+
}