LDAPError:(0,'Error')和LDAPError:(2,'没有这样的文件或目录')与瓶 [英] LDAPError: (0, 'Error') and LDAPError: (2, 'No such file or directory') with flask

查看:372
本文介绍了LDAPError:(0,'Error')和LDAPError:(2,'没有这样的文件或目录')与瓶的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图实现LDAP。我正在使用以下为指导。
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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆