У меня возникли проблемы с использованием django_python3_ldap для подключения к этому тестовому серверу:
https://www.forumsys.com/tutorials/integration-how-to/ldap/online-ldap-test-server/
Он не распознает имя пользователя или пароль для любого пользователя, и ему было интересно, если кто-нибудь увидит ошибкув моей реализации
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'django_python3_ldap.auth.LDAPBackend',
]
LOGIN_URL = '/login'
LOGOUT_REDIRECT_URL = '/logout'
LDAP_AUTH_URL = "ldap://ldap.forumsys.com:389"
LDAP_AUTH_SEARCH_BASE = 'dc=example,dc=com'
LDAP_AUTH_USER_FIELDS = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail"}
LDAP_AUTH_USER_LOOKUP_FIELDS = ("user",)
LDAP_AUTH_CONNECTION_PASSWORD = "password"
LDAP_AUTH_USE_TLS = False
LDAP_AUTH_CLEAN_USER_DATA = "django_python3_ldap.utils.clean_user_data"
LDAP_AUTH_SYNC_USER_RELATIONS = "django_python3_ldap.utils.sync_user_relations"
LDAP_AUTH_FORMAT_SEARCH_FILTERS = "django_python3_ldap.utils.format_search_filters"
LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_openldap"
LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN = 'ldap.forumsys.com'
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"handlers": {
"console": {
"class": "logging.StreamHandler",
},
},
"loggers": {
"django_python3_ldap": {
"handlers": ["console"],
"level": "INFO",
},
},
}
INSTALLED_APPS = [
'django_python3_ldap',
'kpi.apps.KpiConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
Таким образом, у этого тестового сервера нет имени пользователя подключения, а пароль подключения выглядит так.Я знаю, что наличие информации о регистрации помогло бы, но я не уверен, как зарегистрировать действие в моей функции views.py ниже:
class LoginView(TemplateView):
template_name = 'KPI/login.html'
def post(self, request):
email = password = ""
state = ""
if request.POST:
email = request.POST.get('email')
password = request.POST.get('password')
print(email, password)
user = authenticate(username=request.POST.get('email'), password=request.POST.get('password'))
if user is not None:
login(request, user)
return redirect('/login/index')
else:
state = "Inactive account"
# logging.StreamHandler
return render(request, self.template_name, {'state': state, 'email': email})
При более раннем использовании другого плагина ldap я смог получить запись в журналинформация с помощью logging.StreamHandler
в неактивном действии учетной записи, но это не похоже на работу.