HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/site-packages/botocore/__pycache__/tokens.cpython-38.pyc
U

KD�g�*�@sddlZddlZddlZddlZddlmZmZddlmZmZddl	Z
ddlmZddl
mZddlmZddlmZddlmZmZmZdd	lmZmZmZe�e�Zd
d�Zdd
�Zdd�Z dd�Z!Gdd�de�Z"Gdd�d�Z#Gdd�d�Z$Gdd�d�Z%dS)�N)�datetime�	timedelta)�
NamedTuple�Optional)�tzutc)�UNSIGNED)�
total_seconds)�Config)�ClientError�InvalidConfigError�TokenRetrievalError)�CachedProperty�
JSONFileCache�SSOTokenLoadercCst�t��S�N)r�nowr�rr�</opt/cppython/lib/python3.8/site-packages/botocore/tokens.py�_utc_now$srcCst|�g}t|d�S)N)�	providers)�SSOTokenProvider�TokenProviderChain)�sessionrrrr�create_token_resolver(s�rcCst|t�r|�d�S|S)Nz%Y-%m-%dT%H:%M:%SZ)�
isinstancer�strftime��objrrr�_serialize_utc_timestamp/s

rcCstj|td�S)N)�default)�json�dumpsrrrrr�_sso_json_dumps5sr"c@s&eZdZUeed<dZeeed<dS)�FrozenAuthToken�tokenN�
expiration)�__name__�
__module__�__qualname__�str�__annotations__r%rrrrrrr#9s
r#c@sLeZdZdZdZdZefdd�Zdd�Zdd	�Z	d
d�Z
dd
�Zdd�ZdS)�DeferredRefreshableToken�iX�<cCs,||_||_||_t��|_d|_d|_dSr)�
_time_fetcher�_refresh_using�method�	threading�Lock�
_refresh_lock�
_frozen_token�
_next_refresh)�selfr0Z
refresh_using�time_fetcherrrr�__init__Gs
z!DeferredRefreshableToken.__init__cCs|��|jSr)�_refreshr4�r6rrr�get_frozen_tokenQsz)DeferredRefreshableToken.get_frozen_tokencCsB|��}|sdS|dk}|j�|�r>z|��W5|j��XdS)N�	mandatory)�_should_refreshr3�acquire�release�_protected_refresh)r6�refresh_typeZblock_for_refreshrrrr9Usz!DeferredRefreshableToken._refreshcCs�|��}|sdSz(|��}|t|jd�|_|��|_Wn.tk
rftj	d|dd�|dkrb�YnX|�
�r~t|jdd��dS)N��secondsz5Refreshing token failed during the %s refresh period.T��exc_infor<z$Token has expired and refresh failed)�provider�	error_msg)
r=r.r�_attempt_timeoutr5r/r4�	Exception�logger�warning�_is_expiredrr0)r6rArrrrr@cs(��z+DeferredRefreshableToken._protected_refreshcCs.|jdkrdS|jj}t||���}|dkS)NFr)r4r%rr.)r6r%�	remainingrrrrLs

z$DeferredRefreshableToken._is_expiredcCsd|jdkrdS|jj}|dkr"dS|��}||jkr8dSt||�}||jkrRdS||jkr`dSdS)Nr<Zadvisory)r4r%r.r5r�_mandatory_refresh_timeout�_advisory_refresh_timeout)r6r%rrMrrrr=�s



z(DeferredRefreshableToken._should_refreshN)
r&r'r(rOrNrHrr8r;r9r@rLr=rrrrr+>s
r+c@seZdZddd�Zdd�ZdS)rNcCs|dkrg}||_dSr)�
_providers)r6rrrrr8�szTokenProviderChain.__init__cCs(|jD]}|��}|dk	r|SqdSr)rP�
load_token)r6rFr$rrrrQ�s


zTokenProviderChain.load_token)N)r&r'r(r8rQrrrrr�s
rc@s�eZdZdZdZej�ej�dddd��Z	ddgZ
dZeZ
d	ed	fd
d�Zdd
�Zedd��Zedd��Zdd�Zdd�Zdd�Zdd�Zd	S)rZssor,�~z.aws�cache�
sso_start_url�
sso_regionZ
refresh_tokenNcCsR||_|dkr|j|jtd�}||_||_t|jd�|_|pJ|j�d�pJd|_	dS)N)Z
dumps_func)rSZprofiler)
�_session�DEFAULT_CACHE_CLS�_SSO_TOKEN_CACHE_DIRr"�_now�_cacher�
_token_loaderZget_config_variable�
_profile_name)r6rrSr7Zprofile_namerrrr8�s�
��zSSOTokenProvider.__init__c
Cs�|jj}|�di�}|�di�}|�|ji�}d|kr:dS|d}|�|d�}|spd|j�d|�d�}t|d��g}|jD]}	|	|krz|�|	�qz|r�d|j�d|�d	�}t|d��||d
|dd�S)
N�profiles�sso_sessionsZsso_sessionz
The profile "z7" is configured to use the SSO token provider but the "z+" sso_session configuration does not exist.)rGzZ" is configured to use the SSO token provider but is missing the following configuration: �.rUrT)�session_namerUrT)rVZfull_config�getr\r�_SSO_CONFIG_VARS�append)
r6Z
loaded_configr]r^Zprofile_configZsso_session_nameZ
sso_configrGZmissing_configs�varrrr�_load_sso_config�s0�

�
�z!SSOTokenProvider._load_sso_configcCs|��Sr)rer:rrr�_sso_config�szSSOTokenProvider._sso_configcCs"t|jdtd�}|jjd|d�S)NrU)Zregion_nameZsignature_versionzsso-oidc)�config)r	rfrrVZ
create_client)r6rgrrr�_client�s
�zSSOTokenProvider._clientcCs�|jj|j|d|d|dd�}t|dd�}|jd|jd|d	|��||d|d|d
d�}d|kr||d|d<t�d�|S)
N�clientId�clientSecret�refreshToken)Z	grantTyperirjrkZ	expiresInrBrTrU�accessToken�registrationExpiresAt)ZstartUrl�regionrl�	expiresAtrirjrmzSSO Token refresh succeeded)rhZcreate_token�_GRANT_TYPErrfrYrJ�info)r6r$�responseZ
expires_inZ	new_tokenrrr�_attempt_create_token�s&�
�

z&SSOTokenProvider._attempt_create_tokencs�d}�fdd�|D�}|r2d|��}t�|�dStj��d�}t||���dkrjt�d|���dSz|���WStk
r�tj	dd	d
�YdSXdS)N)rkrirjrmcsg|]}|�kr|�qSrr)�.0�k�r$rr�
<listcomp>sz:SSOTokenProvider._refresh_access_token.<locals>.<listcomp>z+Unable to refresh SSO token: missing keys: rmrz"SSO token registration expired at z SSO token refresh attempt failedTrD)
rJrq�dateutil�parser�parserrYrsr
rK)r6r$�keysZmissing_keys�msgZexpiryrrvr�_refresh_access_tokens

z&SSOTokenProvider._refresh_access_tokencCs�|jd}|jd}t�d|���|j||d�}tj�|d�}t�d|���t||�	��}||j
kr�|�|�}|dk	r�|}|d}|jj|||d�t
|d|d�S)	NrTr`zLoading cached SSO token for )r`rozCached SSO token expires at rl)r%)rfrJrqr[rxryrz�debugrrY�_REFRESH_WINDOWr}Z
save_tokenr#)r6Z	start_urlr`Z
token_dictr%rMZnew_token_dictrrr�
_refresher.s*



��zSSOTokenProvider._refreshercCs"|jdkrdSt|j|j|jd�S)N)r7)rfr+�METHODr�rYr:rrrrQDs
�zSSOTokenProvider.load_token)r&r'r(r�r�os�path�
expanduser�joinrXrbrprrWrr8rer
rfrhrsr}r�rQrrrrr�s.���
'

r)&r �loggingr�r1rr�typingrrZdateutil.parserrxZdateutil.tzrZbotocorerZbotocore.compatrZbotocore.configr	Zbotocore.exceptionsr
rrZbotocore.utilsr
rr�	getLoggerr&rJrrrr"r#r+rrrrrr�<module>
s*
a