2016-11-14 74 views
0

我試圖實現LDAP。我正在使用以下爲指導。 https://code.tutsplus.com/tutorials/flask-authentication-with-ldap--cms-23101LDAPError:(0,'Error')和LDAPError:(2,'No such file or directory')with flask

根據以下教程的評論,我已經使用

current_user.is_authenticated: rather than current_user.is_authenticated():

應用開始,不過,我收到以下錯誤,當我嘗試登錄時使用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') 

我的LDAP提供URL我已經使用或者以下兩個選項

app.config['LDAP_PROVIDER_URL'] = 'xxx.xxxx.net/CN=xxx,DC=xxx,DC=xxx,DC=net' 

app.config['LDAP_PROVIDER_URL'] = 'xxx.xxxx.net 

但是,我沒能得到答案。我該怎麼辦 ?

回答

1

你沒有提到的是,我要檢查是有幾件事情:

你添加端口和這樣你的PROVIDER_URL?

您是否添加了完整格式:ldap://ldap.testathon.net:389 /?

最後,確認LDAP實際上是與ldapsearch的工作,像這樣:

ldapsearch -x -LLL -h host.example.com -D user -w password -b"dc=ad,dc=example,dc=com" -s sub "(objectClass=user)" givenName 

如果所有這些都還好,你就必須按你的「flask_app/my_app應用/ 初始化 py」爲。

相關問題