summaryrefslogtreecommitdiff
path: root/src/saml2/attribute_converter.py
diff options
context:
space:
mode:
authorRoland Hedberg <roland@catalogix.se>2016-09-29 08:24:17 -0400
committerGitHub <noreply@github.com>2016-09-29 08:24:17 -0400
commitd14578563d7bed6000330516f3d7019674bb2a24 (patch)
tree2672f626289539d5b80beeb2862e958136375f54 /src/saml2/attribute_converter.py
parent684523a9703989d8b3715b43f76b0340241ca03d (diff)
parent1891faa374a413eab52903365ac197b5999e1f5f (diff)
downloadpysaml2-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.py17
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)))