diff options
author | tpazderka <tomas.pazderka@nic.cz> | 2014-12-18 11:38:50 +0100 |
---|---|---|
committer | tpazderka <tomas.pazderka@nic.cz> | 2014-12-18 11:41:57 +0100 |
commit | 9d96905d8b2e832e1bdedc24594b51cba1815439 (patch) | |
tree | 485c87ef6c0a02b7368ffdd8586fc4a56746106b /src/saml2/authn_context | |
parent | cf7b831ee08b91d21182856b6d790b63e382468d (diff) | |
download | pysaml2-9d96905d8b2e832e1bdedc24594b51cba1815439.tar.gz |
Authn_Broker fixed
Authn_Broker for comparison 'exact' should return all methods matching
from RequestedAuthnContext.
Default comparison of omitted should be 'exact'
Diffstat (limited to 'src/saml2/authn_context')
-rw-r--r-- | src/saml2/authn_context/__init__.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/saml2/authn_context/__init__.py b/src/saml2/authn_context/__init__.py index 1faabbca..97461396 100644 --- a/src/saml2/authn_context/__init__.py +++ b/src/saml2/authn_context/__init__.py @@ -166,14 +166,20 @@ class AuthnBroker(object): if req_authn_context.comparison: _cmp = req_authn_context.comparison else: - _cmp = "minimum" - return self._pick_by_class_ref( - req_authn_context.authn_context_class_ref[0].text, _cmp) + _cmp = "exact" + if _cmp == 'exact': + res = [] + for cls_ref in req_authn_context.authn_context_class_ref: + res += (self._pick_by_class_ref(cls_ref.text, _cmp)) + return res + else: + return self._pick_by_class_ref( + req_authn_context.authn_context_class_ref[0].text, _cmp) elif req_authn_context.authn_context_decl_ref: if req_authn_context.comparison: _cmp = req_authn_context.comparison else: - _cmp = "minimum" + _cmp = "exact" return self._pick_by_class_ref( req_authn_context.authn_context_decl_ref, _cmp) |