From 01283e6def5a47a1314ae12aaa197c7b5efe9689 Mon Sep 17 00:00:00 2001 From: Thiago Pappacena Date: Thu, 24 Jan 2019 18:47:32 -0200 Subject: [PATCH] use SAML username if no --- django_saml2_auth/views.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/django_saml2_auth/views.py b/django_saml2_auth/views.py index 3acb86e..b9791fc 100644 --- a/django_saml2_auth/views.py +++ b/django_saml2_auth/views.py @@ -165,7 +165,12 @@ def acs(r): return HttpResponseRedirect(get_reverse([denied, 'denied', 'django_saml2_auth:denied'])) user_email = user_identity[settings.SAML2_AUTH.get('ATTRIBUTES_MAP', {}).get('email', 'Email')][0] - user_name = user_identity[settings.SAML2_AUTH.get('ATTRIBUTES_MAP', {}).get('username', 'UserName')][0] + try: + user_name = user_identity[settings.SAML2_AUTH['ATTRIBUTES_MAP']['username']][0] + except KeyError: + # If username key is not defined, or is invalid, + # use the auth response username + user_name = authn_response.get_subject().text user_first_name = user_identity[settings.SAML2_AUTH.get('ATTRIBUTES_MAP', {}).get('first_name', 'FirstName')][0] user_last_name = user_identity[settings.SAML2_AUTH.get('ATTRIBUTES_MAP', {}).get('last_name', 'LastName')][0] @@ -178,7 +183,7 @@ def acs(r): import_string(settings.SAML2_AUTH['TRIGGER']['BEFORE_LOGIN'])(user_identity) except User.DoesNotExist: new_user_should_be_created = settings.SAML2_AUTH.get('CREATE_USER', True) - if new_user_should_be_created: + if new_user_should_be_created: target_user = _create_new_user(user_name, user_email, user_first_name, user_last_name) if settings.SAML2_AUTH.get('TRIGGER', {}).get('CREATE_USER', None): import_string(settings.SAML2_AUTH['TRIGGER']['CREATE_USER'])(user_identity)