diff options
Diffstat (limited to 'src/saml2/assertion.py')
-rw-r--r-- | src/saml2/assertion.py | 11 |
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, |