diff options
author | Ioannis Kakavas <ikakavas@noc.grnet.gr> | 2017-06-12 16:57:28 +0300 |
---|---|---|
committer | Ioannis Kakavas <ikakavas@noc.grnet.gr> | 2017-06-12 16:57:28 +0300 |
commit | c24b47cebacb89191c1cea29e1dd21964398e91d (patch) | |
tree | a1a636077ab51df00c2a3fa0554c6d35e0ea7c44 /src/saml2/assertion.py | |
parent | 9d0cc9cdb6c692ff97dc7a6e890aa7b1445f7af1 (diff) | |
download | pysaml2-c24b47cebacb89191c1cea29e1dd21964398e91d.tar.gz |
Base attribute filtering on internal representation names
Instead on relying on the FriendlyName from metadatata, use the name
of the internal representation of an attribute in order to perform
filtering. Resolves #422
Diffstat (limited to 'src/saml2/assertion.py')
-rw-r--r-- | src/saml2/assertion.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/saml2/assertion.py b/src/saml2/assertion.py index 64944d11..a9e3372a 100644 --- a/src/saml2/assertion.py +++ b/src/saml2/assertion.py @@ -79,10 +79,15 @@ def filter_on_attributes(ava, required=None, optional=None, acs=None, def _match_attr_name(attr, ava): try: - friendly_name = attr["friendly_name"] - except KeyError: - friendly_name = get_local_name(acs, attr["name"], + friendly_name = get_local_name(acs, attr["name"], attr["name_format"]) + except: + friendly_name = None + if not friendly_name: + try: + friendly_name = attr["friendly_name"] + except KeyError: + pass _fn = _match(friendly_name, ava) if not _fn: # In the unlikely case that someone has provided us with @@ -91,6 +96,7 @@ def filter_on_attributes(ava, required=None, optional=None, acs=None, return _fn + def _apply_attr_value_restrictions(attr, res, must=False): try: values = [av["text"] for av in attr["attribute_value"]] @@ -105,7 +111,6 @@ def filter_on_attributes(ava, required=None, optional=None, acs=None, return _filter_values(ava[_fn], values, must) res = {} - if required is None: required = [] |