summaryrefslogtreecommitdiff
path: root/src/saml2/authn_context
diff options
context:
space:
mode:
authortpazderka <tomas.pazderka@nic.cz>2014-12-18 11:38:50 +0100
committertpazderka <tomas.pazderka@nic.cz>2014-12-18 11:41:57 +0100
commit9d96905d8b2e832e1bdedc24594b51cba1815439 (patch)
tree485c87ef6c0a02b7368ffdd8586fc4a56746106b /src/saml2/authn_context
parentcf7b831ee08b91d21182856b6d790b63e382468d (diff)
downloadpysaml2-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__.py14
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)