如何维护LDAP登录我自己的html?

时间:2014-10-15 07:16:17

标签: django ldap

以下是当前的情况:我创建了一个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值。检查设置文档以获取更多详细信息。

0 个答案:

没有答案