§ <ˆj~ãó¤—ddlZddlZddlmZddlmZddlmZm Z m Z m Z ddl m Z ddlmZmZddlmZdd lmZmZdd lmZGd „d ¦«ZdS) éN)Ú lru_cache)Ú SSLContext)ÚAnyÚDictÚListÚOptional)ÚURLErroré)ÚPyJWKÚPyJWKSet)Údecode_complete)ÚPyJWKClientConnectionErrorÚPyJWKClientError)Ú JWKSetCachecó—eZdZ ddeded ed ed ed eeeefd edee fd„Z defd„Z ddede fd„Z ddedeefd„Zdedefd„Zdedefd„Zedeededeefd„¦«ZdS)Ú PyJWKClientFéTé,NéÚuriÚ cache_keysÚmax_cached_keysÚ cache_jwk_setÚlifespanÚheadersÚtimeoutÚ ssl_contextc ó—|€i}||_d|_||_||_||_|r.|dkrt d|›d�¦«‚t |¦«|_nd|_|r%t|¬¦«|j¦«|_dSdS)Nrz/Lifespan must be greater than 0, the input is "ú")Úmaxsize) rÚ jwk_set_cacherrrrrrÚget_signing_key) Úselfrrrrrrrrs úF/opt/cloudlinux/venv/lib64/python3.11/site-packages/jwt/jwks_client.pyÚ__init__zPyJWKClient.__init__sÁ€ð ˆ?؈G؈ŒØ48ˆÔ؈Œ ؈Œ Ø&ˆÔà ð &ð˜1Š}ˆ}Ý&ØQÀhÐQÐQÐQñôðõ"-¨XÑ!6Ô!6ˆDÔ Ð à!%ˆDÔ à ð \ð$F¥9°_Ð#EÑ#EÔ#EÀdÔFZÑ#[Ô#[ˆDÔ Ð Ð ð \ð \óÚreturncóü—d} tj |j|j¬¦«}tj ||j|j¬¦«5}tj |¦«}ddd¦«n #1swxYwY||j �|j   |¦«SS#ttf$r}td|›d�¦«‚d}~wwxYw#|j �|j   |¦«wwxYw)N)Úurlr)rÚcontextz'Fail to fetch data from the url, err: "r)ÚurllibÚrequestÚRequestrrÚurlopenrrÚjsonÚloadr!Úputr Ú TimeoutErrorr)r#Újwk_setÚrÚresponseÚes r$Ú fetch_datazPyJWKClient.fetch_data2sV€Øˆð 0Ý”×&Ò&¨4¬8¸T¼\Ð&ÑJÔJˆAÝ”×'Ò'ؘ4œ<°Ô1Að(ñôð .àÝœ) HÑ-Ô-�ð .ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ðàÔ!Ð-ØÔ"×&Ò& wÑ/Ô/Ð/Ð/ð.øõ�,Ð'ð ð ð Ý,Ø>¸!Ð>Ð>Ð>ñôð øøøøð øøøøðÔ!Ð-ØÔ"×&Ò& wÑ/Ô/Ð/Ð/ð.øøøsN„AB+ÁA<Á0 B+Á<BÂB+ÂBÂB+ÂCÂ+CÂ<CÃCÃCÃ$C;Úrefreshcóæ—d}|j�|s|j ¦«}|€| ¦«}t|t¦«st d¦«‚t j|¦«S)Nz.The JWKS endpoint did not return a JSON object)r!Úgetr7Ú isinstanceÚdictrr Ú from_dict)r#r8Údatas r$Ú get_jwk_setzPyJWKClient.get_jwk_setDsp€ØˆØ Ô Ð )°'Ð )ØÔ%×)Ò)Ñ+Ô+ˆDà ˆ<Ø—?’?Ñ$Ô$ˆDå˜$¥Ñ%Ô%ð UÝ"Ð#SÑTÔTÐ TåÔ! $Ñ'Ô'Ð'r&cót—| |¦«}d„|jD¦«}|std¦«‚|S)Ncó2—g|]}|jdv¯ |j¯|‘ŒS))ÚsigN)Úpublic_key_useÚkey_id)Ú.0Ú jwk_set_keys r$ú z0PyJWKClient.get_signing_keys..Ss8€ð ð ð àØÔ)¨]Ð:Ð:¸{Ô?QÐ:ð à:Ð:Ð:r&z2The JWKS endpoint did not contain any signing keys)r?Úkeysr)r#r8r3Ú signing_keyss r$Úget_signing_keyszPyJWKClient.get_signing_keysQsU€Ø×"Ò" 7Ñ+Ô+ˆð ð à&œ|ð ñ ô ˆ ð ð YÝ"Ð#WÑXÔXÐ XàÐr&Úkidcóà—| ¦«}| ||¦«}|sA| d¬¦«}| ||¦«}|std|›d�¦«‚|S)NT)r8z,Unable to find a signing key that matches: "r)rJÚ match_kidr)r#rKrIÚ signing_keys r$r"zPyJWKClient.get_signing_key^s‡€Ø×,Ò,Ñ.Ô.ˆ Ø—n’n \°3Ñ7Ô7ˆ àð à×0Ò0¸Ð0Ñ>Ô>ˆLØŸ.š.¨°sÑ;Ô;ˆKàð Ý&ØIÀ3ÐIÐIÐIñôððÐr&Útokencóˆ—t|ddi¬¦«}|d}| | d¦«¦«S)NÚverify_signatureF)ÚoptionsÚheaderrK)Ú decode_tokenr"r:)r#rOÚ unverifiedrSs r$Úget_signing_key_from_jwtz$PyJWKClient.get_signing_key_from_jwtnsD€Ý! %Ð2DÀeÐ1LÐMÑMÔMˆ ؘHÔ%ˆØ×#Ò# F§J¢J¨uÑ$5Ô$5Ñ6Ô6Ð6r&rIcó2—d}|D]}|j|kr|}nŒ|S)N)rD)rIrKrNÚkeys r$rMzPyJWKClient.match_kidss:€àˆ àð ð ˆCØŒz˜SÒ Ð Ø!� Ø�ð!ðÐr&)FrTrNrN)F)Ú__name__Ú __module__Ú __qualname__ÚstrÚboolÚintrrrrr%r7r r?rr rJr"rVÚ staticmethodrM©r&r$rrs €€€€€ð!Ø!Ø"ØØ,0ØØ,0ð!\ð!\à ð!\ðð!\ðð !\ð ð !\ð ð !\ð˜$˜s C˜xœ.Ô)ð!\ðð!\ð˜jÔ)ð!\ð!\ð!\ð!\ðF0˜Cð0ð0ð0ð0ð$ (ð ( 4ð (°Hð (ð (ð (ð (ð ð ¨ð ¸¸e¼ð ð ð ð ð 3ð¨5ððððð 7¨cð7°eð7ð7ð7ð7ð ð  U¤ ð°#ð¸(À5¼/ðððñ„\ðððr&r)r/Úurllib.requestr+Ú functoolsrÚsslrÚtypingrrrrÚ urllib.errorr Úapi_jwkr r Úapi_jwtr rTÚ exceptionsrrr!rrr`r&r$úrisðØ € € € ØÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø!Ð!Ð!Ð!Ð!Ð!à$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø4Ð4Ð4Ð4Ð4Ð4ØDÐDÐDÐDÐDÐDÐDÐDØ&Ð&Ð&Ð&Ð&Ð&ðnðnðnðnðnñnônðnðnðnr&