7,j/fUdZddlmZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z mZmZmZddlmZddlmZmZmZdd lmZdd lmZe rdd lmZdd l m Z dd lmZmZdZ de!d<dZ"de!d<d!dZ#GddZ$Gdde$Z%Gdde%Z&Gdd e$Z'dS)"z] requests.auth ~~~~~~~~~~~~~ This module contains the authentication handlers for Requests. ) annotationsN) b64encode) TYPE_CHECKINGAnyFinalcastoverload)to_native_string) basestringstrurlparse)extract_cookies_to_jar)parse_dict_header) CookieJar)r)PreparedRequestResponsez!application/x-www-form-urlencodedrCONTENT_TYPE_FORM_URLENCODEDzmultipart/form-dataCONTENT_TYPE_MULTI_PARTusername bytes | strpasswordreturnr c `t|ts.tjd|dtt |}t|ts;tjdt |dtt |}t|t r|d}t|t r|d}dttd ||f z}|S)zReturns a Basic Auth string.zpNon-string usernames will no longer be supported in Requests 3.0.0. Please convert the object you've passed in (zC) to a string or bytes object in the near future to avoid problems.)categoryzpNon-string passwords will no longer be supported in Requests 3.0.0. Please convert the object you've passed in (latin1zBasic :) isinstancer warningswarnDeprecationWarningr typeencoder rjoinstrip)rrauthstrs =C:\PYTHON\GemmaClient\venv\Lib\site-packages\requests/auth.py_basic_auth_strr("s@ h + +!  BJ   (     x== h + +!  BFx..   (     x==(C  -??8,,(C  -??8,,)$))Xx0112288::G NceZdZdZddZdS)AuthBasez4Base class that all auth implementations derive fromrrrc td)NzAuth hooks must be callable.)NotImplementedErrorselfr,s r'__call__zAuthBase.__call__Qs!"@AAAr)Nr,rrr__name__ __module__ __qualname____doc__r1r)r'r+r+Ns4>>BBBBBBr)r+cxeZdZUdZded<ded<eddZedd Zdd ZddZddZddZ dS) HTTPBasicAuthz?Attaches HTTP Basic Authentication to the given Request object.rrrr rNonecdSNr8r0rrs r'__init__zHTTPBasicAuth.__init__[>Acr)bytescdSr=r8r>s r'r?zHTTPBasicAuth.__init__]BE#r)c"||_||_dSr=)rrr>s r'r?zHTTPBasicAuth.__init__`s    r)otherobjectboolc t|jt|ddk|jt|ddkgSNrrallrgetattrrr0rEs r'__eq__zHTTPBasicAuth.__eq__dE  D!A!AA  D!A!AA    r)rc||k Sr=r8rMs r'__ne__zHTTPBasicAuth.__ne__l5=  r)r,rcJt|j|j|jd<|S)N Authorizationr(rrheadersr/s r'r1zHTTPBasicAuth.__call__os!%4T]DM%R%R /"r)Nrr rr rr;rrArrArr;rrrrrr;rErFrrGrErrrGr2) r4r5r6r7__annotations__r r?rNrQr1r8r)r'r:r:UsII AAAXA EEEXE!!!!    !!!!r)r:ceZdZdZddZdS) HTTPProxyAuthz=Attaches HTTP Proxy Authentication to a given Request object.r,rrcJt|j|j|jd<|S)NzProxy-AuthorizationrUr/s r'r1zHTTPProxyAuth.__call__ws"+:4=$-+X+X '(r)Nr2r3r8r)r'r^r^ts.GGr)r^ceZdZUdZded<ded<ded<ded<d ed <d ed <d ed<d ed<ed)dZed*dZd+dZd,dZd-dZd.dZ d/d Z d0d"Z d1d&Z d2d'Z d(S)3HTTPDigestAuthz@Attaches HTTP Digest Authentication to the given Request object.rrrzthreading.local _thread_localr last_nonceint nonce_countzdict[str, str]chalz int | Nonepos num_401_callsrr;cdSr=r8r>s r'r?zHTTPDigestAuth.__init__r@r)rAcdSr=r8r>s r'r?zHTTPDigestAuth.__init__rCr)cR||_||_tj|_dSr=)rr threadinglocalrbr>s r'r?zHTTPDigestAuth.__init__s&    &_..r)ct|jdsJd|j_d|j_d|j_i|j_d|j_d|j_dSdS)NinitTr)hasattrrbrorcrerfrgrh)r0s r'init_per_thread_statez$HTTPDigestAuth.init_per_thread_statesit)622 4&*D  #,.D  )-.D  *&(D  #%)D  "/3D  , , ,  4 4r)methodurl str | Nonec |jjd}|jjd}|jjd}|jjd}|jjd}d|d}n|}|dks|dkrd0d } | n&|dkrd0d} | n|dkrd0d} | n |dkrd0d} | dSd1fd } d}t |}|jpd}|jr |d|jz }|jd|d|j}|d|}|}|}||jj kr|jxj dz c_ n d|j_ |jj d}t|jj  d}|| dz }|tj dz }|tjdz }t#j|ddd }|dkr|d|d|}|s| ||d|}n9|d!ksd!|d"vr|d|d|d#|}| ||}ndS||j_ d$|jd%|d&|d'|d(|d) }|r |d*|d)z }|r |d+|d)z }|r |d,|d)z }|r |d-|d.|d)z }d/|S)2z :rtype: str realmnonceqop algorithmopaqueNMD5zMD5-SESSx str | bytesrr ct|tr|d}tj|dSNutf-8Fusedforsecurity)rr r#hashlibmd5 hexdigestr}s r'md5_utf8z4HTTPDigestAuth.build_digest_header..md5_utf8sFa%%*))A{1e<<<FFHHHr)SHAct|tr|d}tj|dSr)rr r#rsha1rrs r'sha_utf8z4HTTPDigestAuth.build_digest_header..sha_utf8sFa%%*))A|Au===GGIIIr)zSHA-256ct|tr|d}tj|dSr)rr r#rsha256rrs r' sha256_utf8z7HTTPDigestAuth.build_digest_header..sha256_utf8Fa%%*))A~a???IIKKKr)zSHA-512ct|tr|d}tj|dSr)rr r#rsha512rrs r' sha512_utf8z7HTTPDigestAuth.build_digest_header..sha512_utf8rr)sdc$|d|S)N:r8)rr hash_utf8s r'KDz.HTTPDigestAuth.build_digest_header..KDs9ZZAZZ(( (r)/?rr 08xrFrauth,z:auth:z username="z ", realm="z ", nonce="z", uri="z ", response=""z , opaque="z , algorithm="z , digest="z, qop="auth", nc=z , cnonce="zDigest )r}r~rr )rr rr rr )rbrfgetupperrpathqueryrrrcrer r#timectimeosurandomrrrsplit)r0rsrtrwrxryrzr{ _algorithmrrrrrentdigp_parsedrA1A2HA1HA2ncvaluercnoncerespdignoncebitbasers @r'build_digest_headerz"HTTPDigestAuth.build_digest_headersp "'0"'0 %))%00&+// << #(,,X66  JJ"**J   * ":": I I I I !II 5  J J J J !II 9 $ $ L L L L $II 9 $ $ L L L L $I  4 ) ) ) ) ) )C==}# > ) ((( (D 7 7 7 7 7 7    immimm D&1 1 1   * *a / * * *-.D  *'399 ". / / 6 6w ? ? U\\' " "" TZ\\  ) )) RZ]]a777AACCCRCH  # #)s55U55V5566C b....//GG F]]f #66??'??F??#??Hbh''GG4(-% 2 2 2% 2 25 2 2 2 2'. 2 2 2   + **** *D  1 0I000 0D  + **** *D  E DDD6DDD DDr)r,rkwargsrc 0|jrd|j_dSdS)z)Reset num_401_calls counter on redirects.r N) is_redirectrbrh)r0r,rs r'handle_redirectzHTTPDigestAuth.handle_redirect s' = 1/0D  , , , 1 1r)c .d|jcxkrdksnd|j_|S|jj2t |jjddx}||jj|jdd}d| vrv|jjd kre|jxjdz c_tj d tj }t|d|d |j_|j||j}t'd |j}t+||j|j|||t't2|jt't2|j}|r ||jd<|jj|fi|} | j||| _| Sd|j_|S)zo Takes the given response and tries digest-auth, if needed. :rtype: requests.Response iir Nseekzwww-authenticaterpdigestzdigest )flags)countrrT) status_coderbrhrgrLrequestbodyrVrlowerrecompile IGNORECASErsubrfcontentclosecopyr_cookiesrrawprepare_cookiesrr rsrt connectionsendhistoryappend) r0r,rrs_authpatprep cookie_jar _digest_auth_rs r' handle_401zHTTPDigestAuth.handle_401sam))))c))))/0D  ,H   ! -  ===JT'+,,,1266 v||~~ % %$*<*JQ*N*N   , , 1 , ,*Zr}===C&7FRS8T8T&U&UD  # II GGIII9>>##Dk4=99J ":qy!% @ @ @   , , ,33S$+&&S$((;(;L =0< _-""422622B J  a BJI+,(r)rc||jjrR|t t |jt t |j}|r ||jd<t|j ddx}||j_ n d|j_ | d|j | d|jd|j_|S)NrTtellresponser )rrrbrcrrr rsrtrVrLrrg register_hookrrrh)r0r,rrs r'r1zHTTPDigestAuth.__call__As ""$$$   ( :33S!(##T#qu%5%5L :-9 /*AFFD11 1D >%)TVVD  " " &*D  "  DO444  D$8999+,(r)rErFrGc t|jt|ddk|jt|ddkgSrIrJrMs r'rNzHTTPDigestAuth.__eq__YrOr)c||k Sr=r8rMs r'rQzHTTPDigestAuth.__ne__arRr)NrWrXrY)rr;)rsr rtr rru)r,rrrrr;)r,rrrrrr2rZr[)r4r5r6r7r\r r?rrrrrr1rNrQr8r)r'rara|sHJJ""""OOOOOO AAAXA EEEXE//// 4444m m m m ^1111 ....`0    !!!!!!r)ra)rrrrrr )(r7 __future__rrrrrlrrbase64rtypingrrrrr _internal_utilsr compatr r rcookiesrutilsrhttp.cookiejarrmodelsrrrr\rr(r+r:r^rar8r)r'rs0#"""""  <<<<<<<<<<<<<<----------------++++++$$$$$$2((((((11111111&IIIII!66666))))XBBBBBBBBH>Mf!f!f!f!f!Xf!f!f!f!f!r)