Seite 1 von 1
[bottle] basic auth
Verfasst: Mittwoch 7. April 2010, 22:18
von ms4py
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/
Verfasst: Samstag 10. April 2010, 20:21
von noisefloor
Hallo,
habe gerade mal ins Beispiel geschaut - sieht ja schön einfach aus.
Gruß, noisefloor
Verfasst: Samstag 10. April 2010, 23:01
von derdon
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``.
Verfasst: Sonntag 11. April 2010, 00:02
von ms4py
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 hätte eher Kritik zum eigentlichen Code und nicht zum Beispiel erwartet.

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.
Verfasst: Sonntag 11. April 2010, 01:47
von derdon
lambdas auf Modulebene finde ich persönlich nicht schön. Aber das ist Geschmackssache.
Verfasst: Sonntag 11. April 2010, 15:14
von nemomuk
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 ''
Verfasst: Sonntag 11. April 2010, 15:18
von snafu
ahojnnes hat geschrieben:Die Frage ist, ob man den Dekorator nicht um ein user:password dictionary erweitert
+1
Verfasst: Sonntag 11. April 2010, 15:53
von nemomuk
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
Verfasst: Sonntag 11. April 2010, 16:42
von ms4py
Verfasst: Freitag 16. April 2010, 16:57
von ms4py
Mit mod_wsgi funktioniert die Lösung leider nicht, request.auth ist immer leer. Vermutlich werden die Header-Daten nicht richtig geparst.
Verfasst: Samstag 17. April 2010, 14:14
von apollo13
mit mod_wsgi funktioniert es sehr wohl, man muss mod_wsgi nur sagen, dass es die AUTH header and die app durchlassen soll…
Verfasst: Samstag 17. April 2010, 18:00
von ms4py
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…
Ah, vielen Dank.
"WSGIPassAuthorization On" löst das Problem.