+\hdZddlmZddlZddlZddlmZmZddlm Z ddl m Z ddl m Z ddlmZeGd d ZeGd d ZeGd dZGddej&ZeGddZ dZdZdZdZdZGddeZGddeZGddeZGddeZGd d!eZd#d"Z y)$zFConstants, types, and classes shared across OIDC auth implementations.) annotationsN) dataclassfield)Optional)quote)_get_azure_response)_get_gcp_responsecPeZdZUded<edZded<edZded<y) OIDCIdPInfostrissuerNdefault Optional[str]clientIdzOptional[list[str]] requestScopes)__name__ __module__ __qualname____annotations__rrr[/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pymongo/auth_oidc_shared.pyr r s& K#D1Hm1).t)>rr(ceZdZUedZded<edZded<edZded<eeZ d ed <edZ ded <d Z d ed<y)_OIDCPropertiesNrzOptional[OIDCCallback]callbackhuman_callbackr environment)default_factoryz list[str] allowed_hoststoken_resourcer r) rrrrr5rr6r7listr9r:rrrrr4r4<sY',T':H$:-24-@N*@!&t!4K4$T:M9:$)$$7NM7Hcrr4i,<g?ceZdZddZy)_OIDCTestCallbackctjjd}|s tdt |5}t |j jcdddS#1swYyxYw)NOIDC_TOKEN_FILEzIMONGODB-OIDC with an "test" provider requires "OIDC_TOKEN_FILE" to be setr%osenvironget RuntimeErroropenr$readstripr+r, token_filefids rr-z_OIDCTestCallback.fetchPsdZZ^^$56 [ *  G%388:3C3C3EF G G G (A**A3Nr.rrrr-rrrrArAOGrrAceZdZddZy)_OIDCAWSCallbackctjjd}|s tdt |5}t |j jcdddS#1swYyxYw)NAWS_WEB_IDENTITY_TOKEN_FILEzTMONGODB-OIDC with an "aws" provider requires "AWS_WEB_IDENTITY_TOKEN_FILE" to be setrDrErMs rr-z_OIDCAWSCallback.fetch[sdZZ^^$AB f *  G%388:3C3C3EF G G GrPNr.rQrrrrTrTZrRrrTceZdZddZddZy)_OIDCAzureCallbackc$t||_yNrr:r+r:s r__init__z_OIDCAzureCallback.__init__f#N3rc~t|j|j|j}t |d|dS)Nr% expires_in)r%r&)rr:rrr$r+r,resps rr-z_OIDCAzureCallback.fetchis>"4#6#68H8H'JaJab!n-$|BT  rNr:r r/Noner.rrrr]r-rrrrXrXes 4 rrXceZdZddZddZy)_OIDCGCPCallbackc$t||_yrZr[r\s rr]z_OIDCGCPCallback.__init__qr^rc`t|j|j}t|dS)Nr%rD)r r:rr$ras rr-z_OIDCGCPCallback.fetchts* !4!4g6M6MN!tN/CDDrNrcr.rerrrrgrgps 4ErrgceZdZddZy)_OIDCK8SCallbackc*ttS)NrD)r$_get_k8s_tokenr*s rr-z_OIDCK8SCallback.fetchzs!~/?@@rNr.rQrrrrkrkysArrkcd}dD](}|tjvstj|}*t|5}|jcdddS#1swYyxYw)Nz3/var/run/secrets/kubernetes.io/serviceaccount/token)AZURE_FEDERATED_TOKEN_FILErV)rFrGrJrK)fnamekeyrOs rrmrm~sX AEL$ "** JJsOE$ exxzs AA)r/r )!r0 __future__rr1rF dataclassesrrtypingr urllib.parserpymongo._azure_helpersrpymongo._gcp_helpersr r rr$ABCr(r4TOKEN_BUFFER_MINUTESHUMAN_CALLBACK_TIMEOUT_SECONDSCALLBACK_VERSION MACHINE_CALLBACK_TIMEOUT_SECONDSTIME_BETWEEN_CALLS_SECONDSrArTrXrgrkrmrrrr~s M" (62 == =  :: : 77 7 >377>  <!'#%  G GG|G  E|EA|A r