[python] http basic auth

slush slush na centrum.cz
Čtvrtek Únor 3 18:26:53 CET 2011


Zdravim,

uz druhy den resim problem HTTP Basic autentizace s urllib2 a protoze se
nedari, zkusim se zeptat tady.

Mam webovou aplikaci, ktera vyzaduje prihlaseneho uzivatele. Bez prihlaseni
vrati HTTP 401, coz je OK. Bohuzel urllib2 neumi takovou zakladni vec, jako
je zapouzdreny login a heslo primo v URL a cele to resi na objektove urovni.
Nechapu to, stve me to, ale musim s tim zit.

Nakonec jsem vygooglil (opravdu neexistuje poradna dokumentace k tak
zakladni knihovne?) tuto konstrukci, ktera sice obcas funguje, ale velice
divne:

mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
mgr.add_password(None, url, username, password)
opener = urllib2.build_opener(urllib2.HTTPBasicAuthHandler(mgr))
opener.open(...)

Zrejme v tom je jeste nejaky zadrhel, protoze uspesnost autentizace je nekde
kolem 20% - zbytek requestu skonci s vyjimkou HTTP 401. Kazdopadne to
vypada, ze knihovna funguje stylem, ze nejdrive posle pozadavek a teprve
pote, co stranka vrati 401, zkusi poslat take prihlasovaci udaje. Vzhledem k
tomu, ze planovany traffic celeho systemu je kolem 100 requestu za sekundu,
tudy cesta nevede...

Knihovna urllib funguje v tomto ohledu mnohem lepe, akceptuje jmeno/heslo
primo v URL, kazdopadne zase ji chybi nektere featury, ktere urllib2 ma
(napriklad fakt, ze je i v Python3).

Prosim o kazdou radu, jak toto vyresit. Zaseknul jsem se na veci, kterou
jsem puvodne mel mit vyresenou za deset minut...

Diky,
Marek
------------- dal?í ?ást ---------------
HTML p?íloha byla odstran?na...
URL: <http://www.py.cz/pipermail/python/attachments/20110203/58eaa89f/attachment.html>


Další informace o konferenci Python