diff options
author | Roland Hedberg <roland@catalogix.se> | 2016-09-29 08:24:17 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-29 08:24:17 -0400 |
commit | d14578563d7bed6000330516f3d7019674bb2a24 (patch) | |
tree | 2672f626289539d5b80beeb2862e958136375f54 /src/saml2/attribute_converter.py | |
parent | 684523a9703989d8b3715b43f76b0340241ca03d (diff) | |
parent | 1891faa374a413eab52903365ac197b5999e1f5f (diff) | |
download | pysaml2-d14578563d7bed6000330516f3d7019674bb2a24.tar.gz |
Merge pull request #359 from rebeckag/nest-eptidv4.1.0
Automagically nest eduPersonTargetedID in a NameID.
Diffstat (limited to 'src/saml2/attribute_converter.py')
-rw-r--r-- | src/saml2/attribute_converter.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/saml2/attribute_converter.py b/src/saml2/attribute_converter.py index 94031fb3..561c5f24 100644 --- a/src/saml2/attribute_converter.py +++ b/src/saml2/attribute_converter.py @@ -11,7 +11,7 @@ from saml2.s_utils import do_ava from saml2 import saml from saml2 import extension_elements_to_elements from saml2 import SAMLError -from saml2.saml import NAME_FORMAT_UNSPECIFIED +from saml2.saml import NAME_FORMAT_UNSPECIFIED, NAMEID_FORMAT_PERSISTENT, NameID import logging logger = logging.getLogger(__name__) @@ -491,14 +491,19 @@ class AttributeConverter(object): """ attributes = [] for key, value in attrvals.items(): - lkey = key.lower() - try: + name = self._to.get(key.lower()) + if name: + if name == "urn:oid:1.3.6.1.4.1.5923.1.1.1.10": + # special case for eduPersonTargetedID + attr_value = do_ava(NameID(format=NAMEID_FORMAT_PERSISTENT, text=value).to_string()) + else: + attr_value = do_ava(value) attributes.append(factory(saml.Attribute, - name=self._to[lkey], + name=name, name_format=self.name_format, friendly_name=key, - attribute_value=do_ava(value))) - except KeyError: + attribute_value=attr_value)) + else: attributes.append(factory(saml.Attribute, name=key, attribute_value=do_ava(value))) |