Habe mal einen Decorator geschrieben, um mit bottle die Basic Auth nutzen zu können.
bottle-patch(1):
http://paste.pocoo.org/show/198945/
bottle-patch(2):
http://paste.pocoo.org/show/198946/
example:
http://paste.pocoo.org/show/198947/
[bottle] basic auth
- noisefloor
- User
- Beiträge: 4149
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
habe gerade mal ins Beispiel geschaut - sieht ja schön einfach aus.
Gruß, noisefloor
habe gerade mal ins Beispiel geschaut - sieht ja schön einfach aus.

Gruß, noisefloor
Zeilen 6-8 kannst du als ``return user == 'ms4py'`` schreiben. Und nach PEP8 solltest du die Leerzeile zwschen den beiden Importen entfernen. Bei Importen gibt es demnach 3 optionale Abschnitte: 1. standard lib 2. 3rd party Importe 3. lokale Importe. Außerdem kann man die beiden Import Statements doch zu einem Import zusammenfassen: ``from bottle import route, run, need_auth, debug``.
Ich hätte eher Kritik zum eigentlichen Code und nicht zum Beispiel erwartet.derdon hat geschrieben:Zeilen 6-8 kannst du als ``return user == 'ms4py'`` schreiben. Und nach PEP8 solltest du die Leerzeile zwschen den beiden Importen entfernen. Bei Importen gibt es demnach 3 optionale Abschnitte: 1. standard lib 2. 3rd party Importe 3. lokale Importe. Außerdem kann man die beiden Import Statements doch zu einem Import zusammenfassen: ``from bottle import route, run, need_auth, debug``.

Ich könnte auch in Zeile 11 ``lambda x,y: x == 'ms4py'`` schreiben und 5-8 komplett weglassen.

Der Beispiel-Code ist halt nur so auf die Schnelle zur Demonstration entstanden.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher
http://ms4py.org/
Gerhard Kocher
http://ms4py.org/
Die Frage ist, ob man den Dekorator nicht um ein user:password dictionary erweitert:
Code: Alles auswählen
users = {'sample':'password'}
@route("/")
@auth_required(users):
def index():
return ''
Habe mir mal erlaubt deinen Code um die Dictionary Methode zu erweitern und habe gleich mal einen Pull Request an defnull gesendet, wenn das für dich in Ordnung geht?
http://paste.pocoo.org/show/200372/
http://github.com/ahojnnes/bottle
http://paste.pocoo.org/show/200372/
http://github.com/ahojnnes/bottle
Klar, kein Problem.ahojnnes hat geschrieben:Habe mir mal erlaubt deinen Code um die Dictionary Methode zu erweitern und habe gleich mal einen Pull Request an defnull gesendet, wenn das für dich in Ordnung geht?
http://paste.pocoo.org/show/200372/
http://github.com/ahojnnes/bottle
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher
http://ms4py.org/
Gerhard Kocher
http://ms4py.org/
Mit mod_wsgi funktioniert die Lösung leider nicht, request.auth ist immer leer. Vermutlich werden die Header-Daten nicht richtig geparst.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher
http://ms4py.org/
Gerhard Kocher
http://ms4py.org/
Ah, vielen Dank.apollo13 hat geschrieben:mit mod_wsgi funktioniert es sehr wohl, man muss mod_wsgi nur sagen, dass es die AUTH header and die app durchlassen soll…
"WSGIPassAuthorization On" löst das Problem.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher
http://ms4py.org/
Gerhard Kocher
http://ms4py.org/