2012-08-15 38 views
0

使用Django 1.4和django-auth-ldap 1.1,我试图配置我的web应用程序来根据LDAP服务对用户进行身份验证。在登录表单中提供正确的登录凭据,我得到这个错误: -django-auth-ldap”需要一个整数“错误

类型错误在/登录/

的整数需要

请求方法:POST

请求URL:http://mydomain.com:8000/login/

Django的版本:1.4

异常类型:类型错误

异常值:

的整数需要

异常位置:在_ldap_function_call /usr/lib/python2.6/dist-packages/ldap/functions.py 57行 Python的可执行文件:在/ usr/bin中/ Python的

Python版本:2.6.5

.... Python的路径信息

为什么会发生此错误?

这里是粘贴跟踪信息: -

Environment: 

Request Method: POST 
Request URL: http://localhost:8000/login/ 

Django Version: 1.4 
Python Version: 2.6.5 
Installed Applications: 
('django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.admin', 
'django.contrib.admindocs', 
'myapp') 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware') 

Traceback: 
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "/usr/local/lib/python2.6/dist-packages/django/views/decorators/debug.py" in wrapper 
    69.    return view(request, *args, **kwargs) 
File "/usr/local/lib/python2.6/dist-packages/django/utils/decorators.py" in _wrapped_view 
    91.      response = view_func(request, *args, **kwargs) 
File "/usr/local/lib/python2.6/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func 
    89.   response = view_func(request, *args, **kwargs) 
File "/usr/local/lib/python2.6/dist-packages/django/contrib/auth/views.py" in login 
    36.   if form.is_valid(): 
File "/usr/local/lib/python2.6/dist-packages/django/forms/forms.py" in is_valid 
    124.   return self.is_bound and not bool(self.errors) 
File "/usr/local/lib/python2.6/dist-packages/django/forms/forms.py" in _get_errors 
    115.    self.full_clean() 
File "/usr/local/lib/python2.6/dist-packages/django/forms/forms.py" in full_clean 
    271.   self._clean_form() 
File "/usr/local/lib/python2.6/dist-packages/django/forms/forms.py" in _clean_form 
    299.    self.cleaned_data = self.clean() 
File "/usr/local/lib/python2.6/dist-packages/django/contrib/auth/forms.py" in clean 
    167.           password=password) 
File "/usr/local/lib/python2.6/dist-packages/django/contrib/auth/__init__.py" in authenticate 
    43.  for backend in get_backends(): 
File "/usr/local/lib/python2.6/dist-packages/django/contrib/auth/__init__.py" in get_backends 
    34.   backends.append(load_backend(backend_path)) 
File "/usr/local/lib/python2.6/dist-packages/django/contrib/auth/__init__.py" in load_backend 
    28.  return cls() 
File "/usr/local/lib/python2.6/dist-packages/django_auth_ldap-1.1.1-py2.6.egg/django_auth_ldap/backend.py" in __init__ 
    93.   self.ldap = self.ldap_module() 
File "/usr/local/lib/python2.6/dist-packages/django_auth_ldap-1.1.1-py2.6.egg/django_auth_ldap/backend.py" in ldap_module 
    104.   return _LDAPConfig.get_ldap(options) 
File "/usr/local/lib/python2.6/dist-packages/django_auth_ldap-1.1.1-py2.6.egg/django_auth_ldap/config.py" in get_ldap 
    74.     cls.ldap.set_option(opt, value) 
    File "/usr/lib/python2.6/dist-packages/ldap/functions.py" in set_option 
    124. _ldap_function_call(_ldap.set_option,option,invalue) 
    File "/usr/lib/python2.6/dist-packages/ldap/functions.py" in _ldap_function_call 
    57.  result = func(*args,**kwargs) 

Exception Type: TypeError at /login/ 
Exception Value: an integer is required 
+0

需要更多回溯。相关部分可能是将表单值传递给ldap包的地方。形式值中的某些东西并不是它所期待的。 – jdi 2012-08-15 20:10:45

+0

您需要发布处理用户登录的代码。 – 2012-08-15 20:18:54

+0

添加了追溯信息。 – bzo 2012-08-16 15:00:14

回答

0

LDAP服务器抱怨你AUTH_LDAP_GLOBAL_OPTIONS键/值对之一。确保你使用ldap.OPT_*常量作为字典键。