summaryrefslogtreecommitdiff
path: root/src/saml2/mdstore.py
diff options
context:
space:
mode:
authorIvan Kanakarakis <ivan.kanak@gmail.com>2021-12-07 15:43:32 +0200
committerIvan Kanakarakis <ivan.kanak@gmail.com>2021-12-07 15:53:16 +0200
commitb32fe902b47803fb4a701ed7830d9e7b03fde3fc (patch)
tree8c72163476ec5292be8d26b2353d77765194ba2b /src/saml2/mdstore.py
parent79ae7112547e6b386fe27f5fc57e02b4220d6872 (diff)
downloadpysaml2-b32fe902b47803fb4a701ed7830d9e7b03fde3fc.tar.gz
Attribute values are optional
Signed-off-by: Ivan Kanakarakis <ivan.kanak@gmail.com>
Diffstat (limited to 'src/saml2/mdstore.py')
-rw-r--r--src/saml2/mdstore.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/saml2/mdstore.py b/src/saml2/mdstore.py
index 40f7232e..105d8509 100644
--- a/src/saml2/mdstore.py
+++ b/src/saml2/mdstore.py
@@ -1379,13 +1379,15 @@ class MetadataStore(MetaData):
ext = self.__getitem__(entity_id)["extensions"]
except KeyError:
return res
+
for elem in ext["extension_elements"]:
- if elem["__class__"] == classnames["mdattr_entityattributes"]:
- for attr in elem["attribute"]:
- if attr["name"] not in res:
- res[attr["name"]] = []
- res[attr["name"]] += [v["text"] for v in attr[
- "attribute_value"]]
+ if elem["__class__"] != classnames["mdattr_entityattributes"]:
+ continue
+ for attr in elem["attribute"]:
+ res[attr["name"]] = [
+ *res.get(attr["name"], []),
+ *(v["text"] for v in attr.get("attribute_value", []))
+ ]
return res
def supported_algorithms(self, entity_id):