Ñò ô†³Kc@s˜dZddklZddkTdefd„ƒYZdefd„ƒYZeZdgZd„Z d e jo#dd k Z e i d e i ƒnd S( sŽ Basic HTTP/1.0 Authentication This module implements ``Basic`` authentication as described in HTTP/1.0 specification [1]_ . Do not use this module unless you are using SSL or need to work with very out-dated clients, instead use ``digest`` authentication. >>> from paste.wsgilib import dump_environ >>> from paste.httpserver import serve >>> # from paste.auth.basic import AuthBasicHandler >>> realm = 'Test Realm' >>> def authfunc(environ, username, password): ... return username == password >>> serve(AuthBasicHandler(dump_environ, realm, authfunc)) serving on... .. [1] http://www.w3.org/Protocols/HTTP/1.0/draft-ietf-http-spec.html#BasicAA i˙˙˙˙(tHTTPUnauthorized(t*tAuthBasicAuthenticatorcBs5eZdZdZd„Zd„Zd„ZeZRS(s5 implements ``Basic`` authentication details tbasiccCs||_||_dS(N(trealmtauthfunc(tselfRR((s4/usr/lib/python2.6/site-packages/paste/auth/basic.pyt__init__ s cCs#tid|iƒ}td|ƒS(NsBasic realm="%s"theaders(tWWW_AUTHENTICATEttuplesRR(Rthead((s4/usr/lib/python2.6/site-packages/paste/auth/basic.pytbuild_authentication$scCsĤt|ƒ}|p |iƒS|iddƒ\}}d|iƒjo |iƒS|iƒidƒ}|iddƒ\}}|i|||ƒo|S|iƒS(Nt iRtbase64t:(t AUTHORIZATIONR tsplittlowertstriptdecodeR(Rtenviront authorizationtauthmethtauthtusernametpassword((s4/usr/lib/python2.6/site-packages/paste/auth/basic.pyt authenticate(s   (t__name__t __module__t__doc__ttypeRR Rt__call__(((s4/usr/lib/python2.6/site-packages/paste/auth/basic.pyRs    tAuthBasicHandlercBs eZdZd„Zd„ZRS(s/ HTTP/1.0 ``Basic`` authentication middleware Parameters: ``application`` The application object is called only upon successful authentication, and can assume ``environ['REMOTE_USER']`` is set. If the ``REMOTE_USER`` is already set, this middleware is simply pass-through. ``realm`` This is a identifier for the authority that is requesting authorization. It is shown to the user and should be unique within the domain it is being used. ``authfunc`` This is a mandatory user-defined function which takes a ``environ``, ``username`` and ``password`` for its first three arguments. It should return ``True`` if the user is authenticated. cCs||_t||ƒ|_dS(N(t applicationRR(RR"RR((s4/usr/lib/python2.6/site-packages/paste/auth/basic.pyRRs cCszt|ƒ}|pW|i|ƒ}t|tƒo$ti|dƒti||ƒqj|i||ƒSn|i||ƒS(NR(t REMOTE_USERRt isinstancetstrt AUTH_TYPEtupdatetwsgi_applicationR"(RRtstart_responseRtresult((s4/usr/lib/python2.6/site-packages/paste/auth/basic.pyR Vs (RRRRR (((s4/usr/lib/python2.6/site-packages/paste/auth/basic.pyR!7s cKs8ddkl}ddk}||ƒ}t|||ƒS(sÒ Grant access via basic authentication Config looks like this:: [filter:grant] use = egg:Paste#auth_basic realm=myrealm authfunc=somepackage.somemodule:somefunction i˙˙˙˙(t eval_importN(tpaste.util.import_stringR+ttypesR!(tappt global_confRRtkwR+R-((s4/usr/lib/python2.6/site-packages/paste/auth/basic.pyt make_basices   t__main__Nt optionflags(Rtpaste.httpexceptionsRtpaste.httpheaderstobjectRR!t middlewaret__all__R1RtdoctestttestmodtELLIPSIS(((s4/usr/lib/python2.6/site-packages/paste/auth/basic.pyts *