Skip to content
Snippets Groups Projects
Commit eccc3057 authored by Nickolay Ponomarev's avatar Nickolay Ponomarev
Browse files

Sync up `examples/basic_auth` with the README

As noted in:
https://github.com/admiralobvious/flask-simpleldap/issues/5
https://github.com/admiralobvious/flask-simpleldap/issues/43

- @login_required can't be used without like that, so it makes sense to
  replace it with the more basic `@basic_auth_required`.
- It's easy to forget to configure `LDAP_HOST`, and many people probably
  are trying to connect to a pre-existing directory, instead of bringing
  up their own.
parent a3aa363c
No related branches found
No related tags found
No related merge requests found
...@@ -18,30 +18,29 @@ Flask-SimpleLDAP depends, and will install for you, recent versions of Flask ...@@ -18,30 +18,29 @@ Flask-SimpleLDAP depends, and will install for you, recent versions of Flask
(0.12.4 or later) and [python-ldap](https://python-ldap.org/). (0.12.4 or later) and [python-ldap](https://python-ldap.org/).
Please consult the [python-ldap installation instructions](https://www.python-ldap.org/en/latest/installing.html) if you get an error during installation. Please consult the [python-ldap installation instructions](https://www.python-ldap.org/en/latest/installing.html) if you get an error during installation.
Next, add a ``LDAP`` instance to your code and at least the three Next, add an ``LDAP`` instance to your code and at least the three
required configuration options: required configuration options. The complete sample from
[examples/basic_auth/app.py](examples/basic_auth/app.py) looks like this:
```python ```python
from flask import Flask from flask import Flask, g
from flask_simpleldap import LDAP from flask_simpleldap import LDAP
app = Flask(__name__) app = Flask(__name__)
#app.config['LDAP_HOST'] = 'ldap.example.org' # defaults to localhost
app.config['LDAP_BASE_DN'] = 'OU=users,dc=example,dc=org' app.config['LDAP_BASE_DN'] = 'OU=users,dc=example,dc=org'
app.config['LDAP_USERNAME'] = 'CN=user,OU=Users,DC=example,DC=org' app.config['LDAP_USERNAME'] = 'CN=user,OU=Users,DC=example,DC=org'
app.config['LDAP_PASSWORD'] = 'password' app.config['LDAP_PASSWORD'] = 'password'
ldap = LDAP(app) ldap = LDAP(app)
@app.route('/')
@app.route('/ldap') @ldap.basic_auth_required
@ldap.login_required def index():
def ldap_protected(): return 'Welcome, {0}!'.format(g.ldap_username)
return 'Success!'
if __name__ == '__main__': if __name__ == '__main__':
app.run() app.run()
``` ```
You can take a look at [examples/groups](examples/groups) for a more complete You can take a look at [examples/groups](examples/groups) for a more complete
...@@ -61,7 +60,7 @@ configuration, add the following at least LDAP_USER_OBJECT_FILTER and ...@@ -61,7 +60,7 @@ configuration, add the following at least LDAP_USER_OBJECT_FILTER and
LDAP_USER_OBJECT_FILTER. LDAP_USER_OBJECT_FILTER.
```python ```python
from flask import Flask from flask import Flask, g
from flask_simpleldap import LDAP from flask_simpleldap import LDAP
app = Flask(__name__) app = Flask(__name__)
...@@ -86,16 +85,13 @@ app.config['LDAP_GROUP_MEMBER_FILTER_FIELD'] = "cn" ...@@ -86,16 +85,13 @@ app.config['LDAP_GROUP_MEMBER_FILTER_FIELD'] = "cn"
ldap = LDAP(app) ldap = LDAP(app)
@app.route('/')
@app.route('/ldap') @ldap.basic_auth_required
@ldap.login_required def index():
def ldap_protected(): return 'Welcome, {0}!'.format(g.ldap_username)
return 'Success!'
if __name__ == '__main__': if __name__ == '__main__':
app.run() app.run()
``` ```
Resources Resources
......
from flask import Flask, g, request, session, redirect, url_for from flask import Flask, g
from flask_simpleldap import LDAP from flask_simpleldap import LDAP
app = Flask(__name__) app = Flask(__name__)
app.secret_key = 'dev key' #app.config['LDAP_HOST'] = 'ldap.example.org' # defaults to localhost
app.debug = True
app.config['LDAP_HOST'] = 'ldap.example.org'
app.config['LDAP_BASE_DN'] = 'OU=users,dc=example,dc=org' app.config['LDAP_BASE_DN'] = 'OU=users,dc=example,dc=org'
app.config['LDAP_USERNAME'] = 'CN=user,OU=Users,DC=example,DC=org' app.config['LDAP_USERNAME'] = 'CN=user,OU=Users,DC=example,DC=org'
app.config['LDAP_PASSWORD'] = 'password' app.config['LDAP_PASSWORD'] = 'password'
......
from flask import Flask, g, request, session, redirect, url_for from flask import Flask, g
from flask_simpleldap import LDAP from flask_simpleldap import LDAP
app = Flask(__name__) app = Flask(__name__)
app.secret_key = 'dev key'
app.debug = True
app.config['LDAP_OPENLDAP'] = True # Base
app.config['LDAP_OBJECTS_DN'] = 'dn'
app.config['LDAP_REALM_NAME'] = 'OpenLDAP Authentication' app.config['LDAP_REALM_NAME'] = 'OpenLDAP Authentication'
app.config['LDAP_HOST'] = 'openldap.example.org' app.config['LDAP_HOST'] = 'openldap.example.org'
app.config['LDAP_BASE_DN'] = 'dc=users,dc=openldap,dc=org' app.config['LDAP_BASE_DN'] = 'dc=users,dc=openldap,dc=org'
app.config['LDAP_USERNAME'] = 'cn=user,ou=servauth-users,dc=users,dc=openldap,dc=org' app.config['LDAP_USERNAME'] = 'cn=user,ou=servauth-users,dc=users,dc=openldap,dc=org'
app.config['LDAP_PASSWORD'] = 'password' app.config['LDAP_PASSWORD'] = 'password'
# OpenLDAP
app.config['LDAP_OPENLDAP'] = True
app.config['LDAP_OBJECTS_DN'] = 'dn'
app.config['LDAP_USER_OBJECT_FILTER'] = '(&(objectclass=inetOrgPerson)(uid=%s))' app.config['LDAP_USER_OBJECT_FILTER'] = '(&(objectclass=inetOrgPerson)(uid=%s))'
# Groups
app.config['LDAP_GROUP_MEMBERS_FIELD'] = "uniquemember"
app.config['LDAP_GROUP_OBJECT_FILTER'] = "(&(objectclass=groupOfUniqueNames)(cn=%s))"
app.config['LDAP_GROUP_MEMBER_FILTER'] = "(&(cn=*)(objectclass=groupOfUniqueNames)(uniquemember=%s))"
app.config['LDAP_GROUP_MEMBER_FILTER_FIELD'] = "cn"
ldap = LDAP(app) ldap = LDAP(app)
@app.route('/') @app.route('/')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment