Мы используем пользовательскую аутентификацию для нашего django webapp, где мы попали в компанию ldap. Поскольку мы используем пользовательский бэкэнд, мы, похоже, можем вернуть None или имя пользователя пользователя из нашего db.Как перенаправить с бэкэнда аутентификации Django
def authenticate(self,username,password):
"""
Authenticate the username credentials, and return the
"""
try:
self.ldap.simple_bind_s(username+"@"+settings.AUTH_LDAP_DOMAIN,password)
self.ldap.unbind_s()
except ldap.INVALID_CREDENTIALS:
logger.debug("Invalid credentials used for login.")
username = None
except ldap.SERVER_DOWN, e:
logger.debug("Ldap server is down.")
username = None
return username
Очевидно, что существуют три различных варианта использования здесь - тот, где он работает, тот, где это не потому, что учетные данные недействительны, и тот, где сервер выключен. Пользовательский бэкэнд Django, по-видимому, действительно обрабатывает только два из них: недопустимые учетные данные или рабочие. Как мне перенаправить на страницу с ошибкой или сообщить пользователю, что ldap не работает?
redirect isn; t работает? – cwallenpoole
Что произойдет, если вы повторно установите исключение SERVER_DOWN? Неужели ты не поймаешь это на свой взгляд? – shanyu