Access logs should include everything about the connection request. Start with isolating firewall & try a telnet. If you can telnet, Try to run native ldapsearch against ldap server & see if it returns data.
Access logs will contain all data related to that connection. Paste access logs after sanitizing IP address to investigate the issue. You can also mail to 389-users@lists.fedoraproject.org for any issues.
Если вы используете LDAP для связи с сервером Active Directory, Попробуйте отключить поиск переходов .
Я добавил эти строки в local_settings.py.
import ldap
ldap.set_option(ldap.OPT_REFERRALS, 0)
# Critcal for preventing timeouts due to AD search referrals not supported by LDAP v3.
# http://code.google.com/p/reviewboard/issues/detail?id=1641
У вас был установлен пакет python-ldap на этом хосте centos 6?
Я понял, что это работает после его установки, минимальная установка centos его не включает, а пакеты графита из epel не отмечайте это как зависимость. Вам нужно будет перезагрузить httpd после его установки.
Начиная с django 1.11,
HttpRequest теперь передается в функцию authentication(), которая, в свою очередь, передает его серверной части аутентификации, если она принимает аргумент запроса.
Затем, начиная с django 2.1,
метод аутентификации() бэкендов аутентификации требует request в качестве первого позиционного аргумента.
И похоже, что графит, в частности graphite/account/ldapBackend.py
, никогда не обновлялся. Я добавил request
в качестве первого параметра authenticate
в этот файл, и вход в систему у меня сработал:
--- /usr/lib/python3/dist-packages/graphite/account/ldapBackend.py.old 2021-04-28 18:15:22.691462314 +0200
+++ /usr/lib/python3/dist-packages/graphite/account/ldapBackend.py 2021-04-28 18:19:30.654464317 +0200
@@ -18,7 +18,7 @@
class LDAPBackend:
- def authenticate(self, username=None, password=None):
+ def authenticate(self, request, username=None, password=None):
if settings.LDAP_USER_DN_TEMPLATE is not None:
settings.LDAP_BASE_USER = settings.LDAP_USER_DN_TEMPLATE % {'username': username}
settings.LDAP_BASE_PASS = password