summaryrefslogtreecommitdiffstats
path: root/lib/SAML2/XML/samlp/Extensions.php
diff options
context:
space:
mode:
authorOlav Morken <olav.morken@uninett.no>2011-01-05 12:17:59 +0000
committerOlav Morken <olav.morken@uninett.no>2011-01-05 12:17:59 +0000
commit3707ceabbae18b3a6d4d9cc48e1b643948fc56be (patch)
tree90d2967796fd4d0401ba67edfdf6c55a098d66cc /lib/SAML2/XML/samlp/Extensions.php
parent73cf5412848022f8db47e37663f459d9d13fe8fb (diff)
downloadsimplesamlphp-3707ceabbae18b3a6d4d9cc48e1b643948fc56be.zip
simplesamlphp-3707ceabbae18b3a6d4d9cc48e1b643948fc56be.tar.gz
simplesamlphp-3707ceabbae18b3a6d4d9cc48e1b643948fc56be.tar.bz2
saml:IdP: Extract extensions from authentication request.
Thanks to Andjelko Horvat for implementing this! git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@2701 44740490-163a-0410-bde0-09ae8108e29a
Diffstat (limited to 'lib/SAML2/XML/samlp/Extensions.php')
-rw-r--r--lib/SAML2/XML/samlp/Extensions.php48
1 files changed, 48 insertions, 0 deletions
diff --git a/lib/SAML2/XML/samlp/Extensions.php b/lib/SAML2/XML/samlp/Extensions.php
new file mode 100644
index 0000000..ad86c3f
--- /dev/null
+++ b/lib/SAML2/XML/samlp/Extensions.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * Class for handling SAML2 extensions.
+ *
+ * @package simpleSAMLphp
+ * @version $Id$
+ */
+class SAML2_XML_samlp_Extensions {
+
+ /**
+ * Get a list of Extensions in the given element.
+ *
+ * @param DOMElement $parent The element that may contain the samlp:Extensions element.
+ * @return array Array of extensions.
+ */
+ public static function getList(DOMElement $parent) {
+
+ $ret = array();
+ foreach (SAML2_Utils::xpQuery($parent, './saml_protocol:Extensions/*') as $node) {
+ $ret[] = new SAML2_XML_Chunk($node);
+ }
+
+ return $ret;
+ }
+
+
+ /**
+ * Add a list of Extensions to the given element.
+ *
+ * @param DOMElement $parent The element we should add the extensions to.
+ * @param array $extensions List of extension objects.
+ */
+ public static function addList(DOMElement $parent, array $extensions) {
+
+ if (empty($extensions)) {
+ return;
+ }
+
+ $extElement = $parent->ownerDocument->createElementNS(SAML2_Const::NS_SAMLP, 'samlp:Extensions');
+ $parent->appendChild($extElement);
+
+ foreach ($extensions as $ext) {
+ $ext->toXML($extElement);
+ }
+ }
+
+}