diff --git a/lib/SimpleSAML/Metadata/SAMLParser.php b/lib/SimpleSAML/Metadata/SAMLParser.php index c141a5c92e8e14a635d0856854239e242c26873f..424e2438c0609f00c1c5e063d4c732b95dc9ea8c 100644 --- a/lib/SimpleSAML/Metadata/SAMLParser.php +++ b/lib/SimpleSAML/Metadata/SAMLParser.php @@ -478,6 +478,9 @@ class SimpleSAML_Metadata_SAMLParser { if (array_key_exists('attributes', $spd)) { $ret['attributes'] = $spd['attributes']; } + if (array_key_exists('attributes.required', $spd)) { + $ret['attributes.required'] = $spd['attributes.required']; + } if (array_key_exists('attributes.NameFormat', $spd)) { $ret['attributes.NameFormat'] = $spd['attributes.NameFormat']; } @@ -1098,6 +1101,10 @@ class SimpleSAML_Metadata_SAMLParser { $sp['attributes.required'][] = $attrname; } + if ($child->isRequired !== NULL && $child->isRequired === TRUE) { + $sp['attributes.required'][] = $attrname; + } + if ($child->NameFormat !== NULL) { $attrformat = $child->NameFormat; } else { diff --git a/modules/saml/www/sp/metadata.php b/modules/saml/www/sp/metadata.php index 1dde24284bbd5aa6f8f5b5a7c7f75a6f635f5c7f..173c7156935e4269ec728a71f5bc72ab1df729e4 100644 --- a/modules/saml/www/sp/metadata.php +++ b/modules/saml/www/sp/metadata.php @@ -133,6 +133,10 @@ if ($name !== NULL && !empty($attributes)) { $metaArray20['name'] = $name; $metaArray20['attributes'] = $attributes; $metaArray20['attributes.required'] = $spconfig->getArray('attributes.required', array()); + + if (empty($metaArray20['attributes.required'])) { + unset($metaArray20['attributes.required']); + } $description = $spconfig->getArray('description', NULL); if ($description !== NULL) { @@ -184,6 +188,11 @@ if (count($keys) === 1) { $metaArray20['keys'] = $keys; } +// add EntityAttributes extension +if ($spconfig->hasValue('EntityAttributes')) { + $metaArray20['EntityAttributes'] = $spconfig->getArray('EntityAttributes'); +} + // add UIInfo extension if ($spconfig->hasValue('UIInfo')) { $metaArray20['UIInfo'] = $spconfig->getArray('UIInfo'); @@ -215,7 +224,6 @@ $metaBuilder->addOrganizationInfo($metaArray20); $xml = $metaBuilder->getEntityDescriptorText(); -unset($metaArray20['attributes.required']); unset($metaArray20['UIInfo']); unset($metaArray20['metadata-set']); unset($metaArray20['entityid']);