Skip to content

Commit af48058

Browse files
committed
assertion policy filter: If name_format does not resolve a local_name, try the friendly name
Signed-off-by: Ivan Kanakarakis <[email protected]>
1 parent 8b2c80c commit af48058

File tree

1 file changed

+11
-19
lines changed

1 file changed

+11
-19
lines changed

src/saml2/assertion.py

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -86,25 +86,17 @@ def filter_on_attributes(ava, required=None, optional=None, acs=None,
8686
"""
8787

8888
def _match_attr_name(attr, ava):
89-
local_name = None
90-
91-
for a in ['name_format', 'friendly_name']:
92-
_val = attr.get(a)
93-
if _val:
94-
if a == 'name_format':
95-
local_name = get_local_name(acs, attr['name'], _val)
96-
else:
97-
local_name = _val
98-
break
99-
100-
if local_name:
101-
_fn = _match(local_name, ava)
102-
else:
103-
_fn = None
104-
105-
if not _fn: # In the unlikely case that someone has provided us with
106-
# URIs as attribute names
107-
_fn = _match(attr["name"], ava)
89+
name_format = attr.get('name_format')
90+
name = attr.get('name')
91+
friendly_name = attr.get('friendly_name')
92+
local_name = get_local_name(acs, name, name_format) or friendly_name
93+
94+
_fn = (
95+
_match(local_name, ava)
96+
if local_name
97+
# In the unlikely case that someone has provided us with URIs as attribute names
98+
else _match(name, ava)
99+
)
108100

109101
return _fn
110102

0 commit comments

Comments
 (0)