以下是当前的情况:我创建了一个login.html页面,在表单中输入我的用户名和密码。在我的views.py中,我获取POST数据并使用用户名和密码对我的LDAP服务器进行身份验证(机制可行)。如果用户名/密码错误,我将被重定向回登录页面并显示错误消息。否则,我将被重定向到登录页面,在那里我将收到如下消息:“Hello姓,名字”。 我像这样修改setting.py:
AUTHENTICATION_BACKENDS=(
"django_auth_ldap.backend.LDAPBackend",
"django.contrib.auth.backends.ModelBackend",
)
AUTH_LDAP_SERVER_URI = 'ldap://126.1.100.1:1234'
AUTH_LDAP_BIND_DN = 'cn=ooxx,ou=example,dc=example,dc=com'
AUTH_LDAP_BIND_PASSWORD = "123456"
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=example,dc=example,dc=com", ldap.SCOPE_SUBTREE "(sAMAccountName=%(user)s)")
当我运行python manage.py shell
时>>> from django.contrib.auth import authenticate, login
>>> user = authenticate(username="alex", password="123456")
我收到了此错误信息
search_s('ou=example,dc=example,dc=com', 2, '(sAMAccountName=%(user)s)') returned 1 objects: cn=alex,ou=user,ou=accounts,dc=example,dc=com
Exception while authenticating alex
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/django_auth_ldap/backend.py", line 320, in authenticate
self._get_or_create_user()
File "/usr/lib/python2.6/site-packages/django_auth_ldap/backend.py", line 519, in _get_or_create_user
self._user, created = self.backend.get_or_create_user(username, self)
File "/usr/lib/python2.6/site-packages/django_auth_ldap/backend.py", line 209, in get_or_create_user
return model.objects.get_or_create(**kwargs)
File "/usr/lib/python2.6/site-packages/django/db/models/manager.py", line 146, in get_or_create
return self.get_query_set().get_or_create(**kwargs)
File "/usr/lib/python2.6/site-packages/django/db/models/query.py", line 484, in get_or_create
return self.get(**lookup), False
File "/usr/lib/python2.6/site-packages/django/db/models/query.py", line 398, in get
num = len(clone)
File "/usr/lib/python2.6/site-packages/django/db/models/query.py", line 106, in __len__
self._result_cache = list(self.iterator())
File "/usr/lib/python2.6/site-packages/django/db/models/query.py", line 317, in iterator
for row in compiler.results_iter():
File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 775, in results_iter
for rows in self.execute_sql(MULTI):
File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 836, in execute_sql
sql, params = self.as_sql()
File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 74, in as_sql
out_cols = self.get_columns(with_col_aliases)
File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 212, in get_columns
col_aliases)
File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 299, in get_default_columns
r = '%s.%s' % (qn(alias), qn2(field.column))
File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 52, in quote_name_unless_alias
r = self.connection.ops.quote_name(name)
File "/usr/lib/python2.6/site-packages/django/db/backends/dummy/base.py", line 15, in complain
raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/lib/python2.6/site-packages/django/contrib/auth/__init__.py", line 60, in authenticate
user = backend.authenticate(**credentials)
文件“/usr/lib/python2.6/site-packages/django_auth_ldap/backend.py”,第144行,进行身份验证 user = ldap_user.authenticate(密码) 文件“/usr/lib/python2.6/site-packages/django_auth_ldap/backend.py”,第320行,进行身份验证 self._get_or_create_user() 在_get_or_create_user中输入文件“/usr/lib/python2.6/site-packages/django_auth_ldap/backend.py”,第519行 self._user,created = self.backend.get_or_create_user(username,self) 在get_or_create_user中输入文件“/usr/lib/python2.6/site-packages/django_auth_ldap/backend.py”,第209行 return model.objects.get_or_create(** kwargs) 在get_or_create中输入文件“/usr/lib/python2.6/site-packages/django/db/models/manager.py”,第146行 return self.get_query_set()。get_or_create(** kwargs) 在get_or_create中输入文件“/usr/lib/python2.6/site-packages/django/db/models/query.py”,第484行 return self.get(** lookup),False 文件“/usr/lib/python2.6/site-packages/django/db/models/query.py”,第398行,获取 num = len(克隆) 文件“/usr/lib/python2.6/site-packages/django/db/models/query.py”,第106行, len self._result_cache = list(self.iterator()) 文件“/usr/lib/python2.6/site-packages/django/db/models/query.py”,第317行,在迭代器中 对于compiler.results_iter()中的行: 在result_iter中输入文件“/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py”,第775行 对于self.execute_sql(MULTI)中的行: 在execute_sql中输入文件“/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py”,第836行 sql,params = self.as_sql() as_sql中的文件“/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py”,第74行 out_cols = self.get_columns(with_col_aliases) 在get_columns中输入文件“/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py”,第212行 col_aliases) 在get_default_columns中输入文件“/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py”,第299行 r ='%s。%s'%(qn(别名),qn2(field.column)) 在quote_name_unless_alias中输入文件“/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py”,第52行 r = self.connection.ops.quote_name(name) 提交抱怨文件“/usr/lib/python2.6/site-packages/django/db/backends/dummy/base.py”,第15行 raise ImproperlyConfigured(“settings.DATABASES配置不正确”。 配置不正确:settings.DATABASES配置不正确。请提供ENGINE值。检查设置文档以获取更多详细信息。