LDAPError:(0,'Error')和LDAPError:(2,'没有这样的文件或目录')与瓶 [英] LDAPError: (0, 'Error') and LDAPError: (2, 'No such file or directory') with flask
问题描述
https://code.tutsplus.com / tutorials / flask-authentication-with-ldap -cms-23101 。根据下面的教程评论,我已经使用了
$
$ blockquote
current_user.is_authenticated:而不是
current_user.is_authenticated():
应用程序已启动,但是,当我尝试使用登录LDAP时出现以下错误。
Traceback最近调用最后一次):
在__call__
文件中的home / user / anaconda / lib / python2.7 / site-packages / flask / app.py,第1836行返回self.wsgi_app(environ, start_response)
在wsgi_app
中,输入home / user / anaconda / lib / python2.7 / site-packages / flask / app.py,第1820行:response = self.make_response(self.handle_exception e))
在handle_except文件中,输入1403行的home / user / anaconda / lib / python2.7 / site-packages / flask / app.py ion
reraise(exc_type,exc_value,tb)
在wsgi_app $ b文件home / user // anaconda / lib / python2.7 / site-packages / flask / app.py,第1817行$ b response = self.full_dispatch_request()
full_dispatch_request
文件中的home / user / anaconda / lib / python2.7 / site-packages / flask / app.py,第1477行rv = self .handle_user_exception(e)
在handle_user_exception
reraise(exc_type,exc_value,tb)文件home / user / anaconda / lib / python2.7 / site-packages / flask / app.py,1381行)
在full_dispatch_request
rv = self.dispatch_request()
中的文件home / user / anaconda / lib / python2.7 / site-packages / flask / app.py,1475行文件home / user / anaconda / lib / python2.7 / site-packages / flask / app.py,第1461行,在dispatch_request
返回self.view_functions [rule.endpoint](** req.view_args)
文件home / user / Desktop / flask_app / my_app / auth / views.py,第41行,登录
User.try_login(用户名,密码)
文件home / user /桌面/ flask_app /程序my_app / A uth / models.py,第22行,在try_login
conn = get_ldap_connection()
文件home / user / Desktop / flask_app / my_app / auth / models.py,第9行,在get_ldap_connection
conn = ldap.initialize(app.config ['LDAP_PROVIDER_URL'])
文件home / user / anaconda / lib / python2.7 / site-packages / ldap / functions.py,第94行,初始化
返回LDAPObject(uri,trace_level,trace_file,trace_stack_limit)
文件home / user / anaconda / lib / python2.7 / site-packages / ldap / ldapobject.py,第77行__init__
self._l = ldap.functions._ldap_function_call(ldap._ldap_module_lock,_ldap.initialize,uri)
文件home / user / anaconda / lib / python2.7 / site-packages / ldap / functions .py,第66行,在_ldap_function_call
result = func(* args,** kwargs)
LDAPError:(2,'没有这样的文件或目录')
在__call__
中的文件home / user / anaconda / lib / python2.7 / site-packages / flask / app.py,行1836,返回self.wsgi_app(environ,start_response)
Fi在$ w
$ b response = self.make_response(self.handle_exception(e))$ b $/ home / user / anaconda / lib / python2.7 / site-packages / flask / app.py b在handle_exception
reraise(exc_type,exc_value,tb)
文件home / user / anaconda / lib / python2.7 / site-packages / flask / app.py /user/anaconda/lib/python2.7/site-packages/flask/app.py,第1817行,在wsgi_app
response = self.full_dispatch_request()
文件home / user / anaconda / lib / python2.7 / site-packages / flask / app.py,第1477行,在full_dispatch_request
rv = self.handle_user_exception(e)
文件home / user / anaconda / lib / python2。 7 / site-packages / flask / app.py,第1381行,在handle_user_exception
reraise(exc_type,exc_value,tb)
文件home / user / anaconda / lib / python2.7 / packages / flask / app.py,第1475行,在full_dispatch_request
rv = self.dispatch_request()
文件home / user / anaconda / lib / python2.7 / site-packages / flask / app .py,行1461,在dispa tch_request
返回self.view_functions [rule.endpoint](** req.view_args)
登录$文件home / user / Desktop / flask_app / my_app / auth / views.py,第41行b $ b User.try_login(username,password)
在try_login
conn = get_ldap_connection()$ b中的第22行文件home / user / Desktop / flask_app / my_app / auth / models.py $ b在get_ldap_connection
conn = ldap.initialize(app.config ['LDAP_PROVIDER_URL'])
文件中的home / user / Desktop / flask_app / my_app / auth / models.py
返回LDAPObject(uri,trace_level,trace_file,trace_stack_limit)
文件home / user / anaconda / lib / python2.7 / site-packages / ldap / functions.py home / user / anaconda / lib / python2.7 / site-packages / ldap / ldapobject.py,第77行,在__init__
self._l = ldap.functions._ldap_function_call(ldap._ldap_module_lock,_ldap.initialize, uri)
在_ldap_function_call
文件中的第66行home / user / anaconda / lib / python2.7 / site-packages / ldap / functions.py = func(* args,** kwargs)
LDAPError:(0,'Error')
我的LDAP提供程序URL我已经使用了以下两个选项:
app.config ['LDAP_PROVIDER_URL'] ='xxx.xxxx .net / CN = xxx,DC = xxx,DC = xxx,DC = net'
/ p>
app.config ['LDAP_PROVIDER_URL'] ='xxx.xxxx.net
然而,我无法得到答案。我应该怎么做?
有几件事你没有提到,我必须检查的是:
您是否将端口添加到您的PROVIDER_URL?
是否添加了完整格式:ldap://ldap.testathon。 net:389 /?
最后,请确认LDAP实际上是在使用ldapsearch,如下所示:
ldapsearch -x -LLL -h host.example.com -D用户-w密码-bdc = ad,dc = example,dc = com-s sub(objectClass = user )givenName
如果所有这些都可以,您需要将flask_app / my_app / init .py。
I am trying to implement LDAP. I am using following as guide. https://code.tutsplus.com/tutorials/flask-authentication-with-ldap--cms-23101.
According to comments below tutorial, I have used
current_user.is_authenticated: rather than current_user.is_authenticated():
Application started, however, I am getting following errors when I try to used login LDAP.
Traceback (most recent call last):
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "home/user//anaconda/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "home/user/Desktop/flask_app/my_app/auth/views.py", line 41, in login
User.try_login(username, password)
File "home/user/Desktop/flask_app/my_app/auth/models.py", line 22, in try_login
conn = get_ldap_connection()
File "home/user/Desktop/flask_app/my_app/auth/models.py", line 9, in get_ldap_connection
conn = ldap.initialize(app.config['LDAP_PROVIDER_URL'])
File "home/user/anaconda/lib/python2.7/site-packages/ldap/functions.py", line 94, in initialize
return LDAPObject(uri,trace_level,trace_file,trace_stack_limit)
File "home/user/anaconda/lib/python2.7/site-packages/ldap/ldapobject.py", line 77, in __init__
self._l = ldap.functions._ldap_function_call(ldap._ldap_module_lock,_ldap.initialize,uri)
File "home/user/anaconda/lib/python2.7/site-packages/ldap/functions.py", line 66, in _ldap_function_call
result = func(*args,**kwargs)
LDAPError: (2, 'No such file or directory')
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "home/user/anaconda/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "home/user/Desktop/flask_app/my_app/auth/views.py", line 41, in login
User.try_login(username, password)
File "home/user/Desktop/flask_app/my_app/auth/models.py", line 22, in try_login
conn = get_ldap_connection()
File "home/user/Desktop/flask_app/my_app/auth/models.py", line 9, in get_ldap_connection
conn = ldap.initialize(app.config['LDAP_PROVIDER_URL'])
File "home/user/anaconda/lib/python2.7/site-packages/ldap/functions.py", line 94, in initialize
return LDAPObject(uri,trace_level,trace_file,trace_stack_limit)
File "home/user/anaconda/lib/python2.7/site-packages/ldap/ldapobject.py", line 77, in __init__
self._l = ldap.functions._ldap_function_call(ldap._ldap_module_lock,_ldap.initialize,uri)
File "home/user/anaconda/lib/python2.7/site-packages/ldap/functions.py", line 66, in _ldap_function_call
result = func(*args,**kwargs)
LDAPError: (0, 'Error')
My LDAP Provider URL I have used alternatively following two option
app.config['LDAP_PROVIDER_URL'] = 'xxx.xxxx.net/CN=xxx,DC=xxx,DC=xxx,DC=net'
and
app.config['LDAP_PROVIDER_URL'] = 'xxx.xxxx.net
However, I am not able to get answer. What should I do ?
A few things you have not mentioned, that i have to check is:
Did you add ports and such to your PROVIDER_URL?
Did you add the full format: ldap://ldap.testathon.net:389/ ?
Last, confirm that the LDAP is actually working with ldapsearch, like this:
ldapsearch -x -LLL -h host.example.com -D user -w password -b"dc=ad,dc=example,dc=com" -s sub "(objectClass=user)" givenName
If all of these are okay, you would need to post your "flask_app/my_app/init.py".
这篇关于LDAPError:(0,'Error')和LDAPError:(2,'没有这样的文件或目录')与瓶的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!