diff options
author | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2018-11-27 22:49:26 +0200 |
---|---|---|
committer | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2018-11-27 22:49:26 +0200 |
commit | 0c1e26a6dd8759962857a30ebd67f63fe9e881ee (patch) | |
tree | 8888c7530f805626b242c54a086293c221cfdcea /src | |
parent | 65226caa34874a44a5752494a7001d87a5a523de (diff) | |
download | pysaml2-0c1e26a6dd8759962857a30ebd67f63fe9e881ee.tar.gz |
Group assurance-certification and entity-category
Assurance-certification and entity-category should be under the same
EntityAttributes elements.
Signed-off-by: Ivan Kanakarakis <ivan.kanak@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/saml2/metadata.py | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/saml2/metadata.py b/src/saml2/metadata.py index 10f06d67..c1828cea 100644 --- a/src/saml2/metadata.py +++ b/src/saml2/metadata.py @@ -667,6 +667,19 @@ def do_pdp_descriptor(conf, cert=None, enc_cert=None): return pdp +def _add_attr_to_entity_attributes(extensions, attribute): + try: + entity_attributes = next(filter( + lambda el: el.tag == mdattr.EntityAttributes.c_tag, + extensions.extension_elements + )) + except StopIteration: + entity_attributes = mdattr.EntityAttributes(attribute=attribute) + extensions.add_extension_element(entity_attributes) + else: + entity_attributes.children.append(attribute) + + def entity_descriptor(confd): mycert = None enc_cert = None @@ -698,19 +711,18 @@ def entity_descriptor(confd): ava = [AttributeValue(text=c) for c in confd.assurance_certification] attr = Attribute( attribute_value=ava, - name="urn:oasis:names:tc:SAML:attribute:assurance-certification" + name="urn:oasis:names:tc:SAML:attribute:assurance-certification", ) - item = mdattr.EntityAttributes(attribute=attr) - entd.extensions.add_extension_element(item) + _add_attr_to_entity_attributes(entd.extensions, attr) if confd.entity_category: if not entd.extensions: entd.extensions = md.Extensions() ava = [AttributeValue(text=c) for c in confd.entity_category] - attr = Attribute(attribute_value=ava, - name="http://macedir.org/entity-category") - item = mdattr.EntityAttributes(attribute=attr) - entd.extensions.add_extension_element(item) + attr = Attribute( + attribute_value=ava, name="http://macedir.org/entity-category" + ) + _add_attr_to_entity_attributes(entd.extensions, attr) for item in algorithm_support_in_metadata(confd.xmlsec_binary): if not entd.extensions: |