26 lines
692 B
Python
26 lines
692 B
Python
import ldap
|
|
from flask import Flask, render_template, request
|
|
from time import sleep
|
|
app = Flask('auth')
|
|
app.config.from_object(__name__)
|
|
app.config.from_pyfile('auth.cfg')
|
|
|
|
@app.route('/', methods=['GET'])
|
|
def form():
|
|
return render_template('login.html')
|
|
|
|
@app.route('/', methods=['POST'])
|
|
def login():
|
|
conn = ldap.initialize(app.config['LDAP_URL'])
|
|
conn.start_tls_s()
|
|
try:
|
|
conn.simple_bind_s(app.config['DN_STRING'] % request.form['login'],
|
|
request.form.get('password', ''))
|
|
except ldap.LDAPError:
|
|
sleep(app.config['FAIL_DELAY'])
|
|
return "ERROR"
|
|
return "OK"
|
|
|
|
if __name__ == '__main__':
|
|
app.run('0.0.0.0', 8082, debug=True)
|