针对事件目录服务器使用 django_auth_ldap 的任何人
我正在尝试通过 django_auth_ldap 设置身份验证,但遇到了问题。 如果我从 django 交互式 shell 运行我的身份验证,则身份验证工作正常。 来自 shell 的示例
>>> from django.contrib.auth import authenticate
>>> authenticate(username='#############',password='*************')
search_s('ou=People, o=hp.com', 2, '(uid=%(user)s)') returned 1 objects: uid=###########,ou=people,o=hp.com
Populating Django ###########
Django user ########## does not have a profile to populate
<User:########## >
但是应用程序 View 中的相同代码失败了
Caught LDAPError while authenticating ##########: SERVER_DOWN({'desc': "Can't contact LDAP server"},)
最佳答案
我明白了。我决定设置远程调试,以便我可以单步执行该过程并查看该过程中的失败位置我发现 httpd 进程被阻止(由 selinux)建立网络连接回到我的 eclipse IDE 修复此问题修复了应用程序。我认为 selinux 阻止了应用程序连接到 ldap 服务器。当我的调试环境全部解决并逐步完成时,一切都工作正常!
允许httpd建立网络连接的命令 作为根用户 setebool -P httpd_can_network_connect 1
关于python - django ldap auth 无法从应用程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22083525/