Be more restrictive in catching LDAP exceptions.

django-auth-ldap can throw exceptions, like TypeError if it's
misconfigured.  If we encounter an exception attempting to log into an
LDAP server, log it and move on (otherwise, an uncaught exception will
cause local login to fail, too).

see: #5933
This commit is contained in:
Ryan Petrello 2017-04-07 16:44:46 -04:00
parent 9027616420
commit d1eb33bca0

View File

@ -12,7 +12,6 @@ from django.dispatch import receiver
from django.contrib.auth.models import User
from django.conf import settings as django_settings
from django.core.signals import setting_changed
from django.core.exceptions import ImproperlyConfigured
# django-auth-ldap
from django_auth_ldap.backend import LDAPSettings as BaseLDAPSettings
@ -90,8 +89,8 @@ class LDAPBackend(BaseLDAPBackend):
return None
try:
return super(LDAPBackend, self).authenticate(username, password)
except ImproperlyConfigured:
logger.error("Unable to authenticate, LDAP is improperly configured")
except Exception:
logger.exception("Encountered an error authenticating to LDAP")
return None
def get_user(self, user_id):