summaryrefslogtreecommitdiff
path: root/src/saml2/attribute_resolver.py
diff options
context:
space:
mode:
authorRoland Hedberg <roland.hedberg@adm.umu.se>2009-11-17 10:43:42 +0100
committerRoland Hedberg <roland.hedberg@adm.umu.se>2009-11-17 10:43:42 +0100
commit8b3be05ddf980186b7cc52f1da2bc7331c30d586 (patch)
tree42593cb161a35c4e3b6ad1a3557ec4522220ef82 /src/saml2/attribute_resolver.py
parentb9a48efbfa61f258900ece2a7dcec6e9ea432ce4 (diff)
downloadpysaml2-8b3be05ddf980186b7cc52f1da2bc7331c30d586.tar.gz
Lots and lots of changes, sorry should be separated but that won't happen
Diffstat (limited to 'src/saml2/attribute_resolver.py')
-rw-r--r--src/saml2/attribute_resolver.py30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/saml2/attribute_resolver.py b/src/saml2/attribute_resolver.py
index 3ce58a1c..4d44fa42 100644
--- a/src/saml2/attribute_resolver.py
+++ b/src/saml2/attribute_resolver.py
@@ -33,16 +33,16 @@ DEFAULT_BINDING = saml2.BINDING_HTTP_REDIRECT
class AttributeResolver(object):
- def __init__(self, environ, metadata=None, xmlsec_binary=None,
- key_file=None, cert_file=None):
+ def __init__(self, environ, metadata=None, config=None, saml2client=None):
self.metadata = metadata
- self.saml2client = Saml2Client(environ, metadata=metadata,
- xmlsec_binary=xmlsec_binary,
- key_file=key_file,
- cert_file=cert_file)
+
+ if saml2client:
+ self.saml2client = saml2client
+ else:
+ self.saml2client = Saml2Client(environ, config)
- def extend(self, subject_id, issuer, vo_members, nameid_format,
- log=None):
+ def extend(self, subject_id, issuer, vo_members, name_id_format=None,
+ sp_name_qualifier=None, log=None):
"""
:param subject_id: The identifier by which the subject is know
among all the participents of the VO
@@ -61,17 +61,15 @@ class AttributeResolver(object):
for attr_serv in ass.attribute_service:
log and log.info("Send attribute request to %s" % \
attr_serv.location)
- resp = self.saml2client.attribute_query(subject_id,
+ (resp, issuer,
+ not_on_or_after) = self.saml2client.attribute_query(
+ subject_id,
issuer,
attr_serv.location,
- format=nameid_format, log=log)
+ sp_name_qualifier=sp_name_qualifier,
+ format=name_id_format, log=log)
if resp:
# unnecessary
del resp["__userid"]
- for attr,val in resp.items():
- try:
- extended_identity[attr].extend(val)
- except KeyError:
- extended_identity[attr] = val
-
+ extended_identity[issuer] = (not_on_or_after, resp)
return extended_identity \ No newline at end of file