PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  4h^c@sdZddlZyddlmZWn!ek rIddlmZnXddlZddlZddlZddl Z ddl Z ddl Z e j Z ddl Z dd dYZdd dYZejd ejZdS( s>$Id: auth_handler.py,v 1.6 2002/11/25 19:40:23 akuchling Exp $iN(tmd5(tnewt auth_handlercBsJeZddZdZdZdZdZdZdZRS(tdefaultcCsCt||_||_||_tj|_tj|_dS(N(tdictionary_authorizert authorizerthandlertrealmtcountert pass_countt fail_count(tselftdictRR((sB/usr/lib/python2.7/site-packages/supervisor/medusa/auth_handler.pyt__init__$s   cCs|jj|S(N(Rtmatch(R trequest((sB/usr/lib/python2.7/site-packages/supervisor/medusa/auth_handler.pyR+scCstt|j}|r|j}|dkrtt|jd}ytj|}Wn)tjjd||j ddSX|j dd}|j j |r|j j||_|jj|q|j|qtjjd||j|n |j|dS(Ntbasicis"malformed authorization info <%s> it:is$unknown/unsupported auth method: %s (t get_headert AUTHORIZATIONtheadertlowertbase64t decodestringtsyststderrtwriteterrortsplitRt authorizeR t incrementt auth_infoRthandle_requestthandle_unauthorized(R RtschemetcookietdecodedR((sB/usr/lib/python2.7/site-packages/supervisor/medusa/auth_handler.pyR /s(      cCsI|jj|jjdd|d, constructed as suggested in RFC 2069itLR( R'tservertiptstrtlongttimetidtjoint apply_hash(R RR,tnowt private_keytnonce((sB/usr/lib/python2.7/site-packages/supervisor/medusa/auth_handler.pyt make_nonce\s cCs3t}|j||j}tj|d S(s;Apply MD5 to a string , then wrap it in base64 encoding.i(RtupdatetdigestRt encodestring(R tstmtd((sB/usr/lib/python2.7/site-packages/supervisor/medusa/auth_handler.pyR2fs   cCsgtjd|jg}t|jdrD|j|jjn|jtjdtj|S(NsB
  • Authorization Extension : Unauthorized requests: %s
      tstatuss
    (t producerstsimple_producerR thasattrRtappendR=tcomposite_producer(R tr((sB/usr/lib/python2.7/site-packages/supervisor/medusa/auth_handler.pyR=ns( t__name__t __module__R RR R!R6R2R=(((sB/usr/lib/python2.7/site-packages/supervisor/medusa/auth_handler.pyR#s   $ RcBseZdZdZRS(cCs ||_dS(N(R (R R ((sB/usr/lib/python2.7/site-packages/supervisor/medusa/auth_handler.pyR ~scCs=|\}}|jj|r5|j||kr5dSdSdS(Nii(R thas_key(R Rtusernametpassword((sB/usr/lib/python2.7/site-packages/supervisor/medusa/auth_handler.pyRs %(RDRER R(((sB/usr/lib/python2.7/site-packages/supervisor/medusa/auth_handler.pyR}s sAuthorization: ([^ ]+) (.*)(((tRCS_IDRthashlibRt ImportErrorRtretstringRR/Rtdefault_handlerRR>RRtcompilet IGNORECASER(((sB/usr/lib/python2.7/site-packages/supervisor/medusa/auth_handler.pyts$          Z