summaryrefslogtreecommitdiff
path: root/src/saml2/assertion.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/saml2/assertion.py')
-rw-r--r--src/saml2/assertion.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/saml2/assertion.py b/src/saml2/assertion.py
index 46733f93..54d96172 100644
--- a/src/saml2/assertion.py
+++ b/src/saml2/assertion.py
@@ -556,11 +556,12 @@ class Policy:
metadata_store = metadata or self.metadata_store
spec = metadata_store.attribute_requirement(sp_entity_id) or {} if metadata_store else {}
- required_attributes = spec.get("required", [])
- optional_attributes = spec.get("optional", [])
- required_subject_id = metadata_store.subject_id_requirement(sp_entity_id) if metadata_store else None
- if required_subject_id and required_subject_id not in required_attributes:
- required_attributes.append(required_subject_id)
+ required_attributes = spec.get("required") or []
+ optional_attributes = spec.get("optional") or []
+ requirements_subject_id = metadata_store.subject_id_requirement(sp_entity_id) if metadata_store else []
+ for r in requirements_subject_id:
+ if r not in required_attributes:
+ required_attributes.extend(r)
return self.filter(
ava,
sp_entity_id,