
    E0jg                         d dl Z d dlZd dlZd dlmZ d dlmZmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d	ed
efdZ G d de          ZdS )    N)urlparse)CredentialsRefreshResultRefreshCachedSupplier)HttpOptions)TeaCore)ICredentialsProvider)parameter_helper)CredentialException
expirationreturnc                     | dk     r5t          t          j        t          j                                        dz   S | dz
  S )Nr   i  i  )inttimemktime	localtime)r   s    s/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/alibabacloud_credentials/provider/cloud_sso.py_get_stale_timer      s;    A~~4;t~//0011G;;    c                       e Zd ZdZdZddddddddededed	ed
edefdZde	fdZ
de	fdZdee	         fdZdee	         fdZdefdZdS )CloudSSOCredentialsProvideri  i'  Nr   )sign_in_url
account_idaccess_configaccess_tokenaccess_token_expirehttp_optionsr   r   r   r   r   r   c                r   || _         || _        || _        || _        || _        | j        I| j        dk    s>| j        t          t          j        t          j                                        z
  dk    rt          d          | j         | j        | j        t          d          ||nt                      | _        | j        j        | j        j        nt          j        | j        j        | j        j        nt          j        | j        j        d| _        t'          | j        | j                  | _        d S )Nr   zCCloudSSO access token is empty or expired, please re-login with cliz<CloudSSO sign in url or account id or access config is empty)connectTimeoutreadTimeout
httpsProxy)refresh_callablerefresh_callable_async)_sign_in_url_account_id_access_config_access_token_access_token_expirer   r   r   r   
ValueErrorr   _http_optionsconnect_timeoutr   DEFAULT_CONNECT_TIMEOUTread_timeoutDEFAULT_READ_TIMEOUTproxy_runtime_optionsr   _refresh_credentials_refresh_credentials_async_credentials_cache)selfr   r   r   r   r   r   s          r   __init__z$CloudSSOCredentialsProvider.__init__   sm    (%+)$7!%)Ba)G)G4KdgjDN,,--h/ h/ L/23L4 L4UW W W$(8(@DDWD_NP P P .:-E\\;==DHDVDfDrd0@@  yT  yl>B>P>]>i4-::  pK  p`,2!
 !

 #8!6#'#B#
 #
 #
r   r   c                 4    | j                                         S N)r3   
_sync_callr4   s    r   get_credentialsz+CloudSSOCredentialsProvider.get_credentials9   s    &11333r   c                 D   K   | j                                          d {V S r7   )r3   _async_callr9   s    r   get_credentials_asyncz1CloudSSOCredentialsProvider.get_credentials_async<   s-      ,88:::::::::r   c                    t          | j                  }t          j                    }|j        |j        d<   |j        |_        |j        |_        d|_	        d|_
        t          j        | j        | j        d          |_        d|j        d<   d|j        d<   d| j         |j        d	<   t#          j        || j                  }|j        d
k    r2t+          d|j         d|j                            d                     t          j        |j                            d                    }d|vr*t+          d|j                            d                     |                    d          }d|vsd|vsd|vr*t+          d|j                            d                     t3          j        |                    d          d          }t7          j        |          }t;          |                    d          |                    d          |                    d          ||                                           }t?          |tA          |                    S NhostPOSTz/cloud-credentials)	AccountIdAccessConfigurationIdzapplication/jsonAcceptzContent-TypezBearer Authorization   z2error refreshing credentials from sso, http_code: z
, result: zutf-8CloudCredentialz.error retrieving credentials from sso result: AccessKeyIdAccessKeySecretSecurityToken
Expirationz%Y-%m-%dT%H:%M:%SZ)access_key_idaccess_key_secretsecurity_tokenr   provider_name)value
stale_time)!r   r$   phget_new_requesthostnameheadersportschemeprotocolmethodpathnamejsondumpsr%   r&   bodyr'   r   	do_actionr0   status_coder   decodeloadsgetr   strptimecalendartimegmr   get_provider_namer   r   	r4   rtea_requestresponsediccre
time_arrayr   credentialss	            r   r1   z0CloudSSOCredentialsProvider._refresh_credentials?   s   T&''(**&'jF#6 x#3:)%)%8'
 '
  
 );H%.@N+/M9K/M/MO,$[$2GHH3&&% EXEY  E  Eemereyey  {B  fC  fC  E  EF F F j--g6677C''%`AUAUV]A^A^``b b b gg'((##'8'C'C^aGaGa%`AUAUV]A^A^``b b b ]377<#8#8:NOO
_Z00
!''-00!gg&78877?33!0022
 
 
 ;(7
(C(CE E E 	Er   c                   K   t          | j                  }t          j                    }|j        |j        d<   |j        |_        |j        |_        d|_	        d|_
        t          j        | j        | j        d          |_        d|j        d<   d|j        d<   d| j         |j        d	<   t#          j        || j                   d {V }|j        d
k    r2t+          d|j         d|j                            d                     t          j        |j                            d                    }d|vr*t+          d|j                            d                     |                    d          }d|vsd|vsd|vr*t+          d|j                            d                     t3          j        |                    d          d          }t7          j        |          }t;          |                    d          |                    d          |                    d          ||                                           }t?          |tA          |                    S r?   )!r   r$   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r%   r&   r]   r'   r   async_do_actionr0   r_   r   r`   ra   rb   r   rc   rd   re   r   rf   r   r   rg   s	            r   r2   z6CloudSSOCredentialsProvider._refresh_credentials_asynco   s     T&''(**&'jF#6 x#3:)%)%8'
 '
  
 );H%.@N+/M9K/M/MO, 0d>STTTTTTTT3&&% EXEY  E  Eemereyey  {B  fC  fC  E  EF F F j--g6677C''%`AUAUV]A^A^``b b b gg'((##'8'C'C^aGaGa%`AUAUV]A^A^``b b b ]377<#8#8:NOO
_Z00
!''-00!gg&78877?33!0022
 
 
 ;(7
(C(CE E E 	Er   c                     dS )N	cloud_sso r9   s    r   rf   z-CloudSSOCredentialsProvider.get_provider_name   s    {r   )__name__
__module____qualname__r,   r.   strr   r   r5   r   r:   r=   r   r1   r2   rf   rs   r   r   r   r      s(       "  %)#'&*%),--1
 
 
!
 
 !$
  #	

 '*
  +
 
 
 
B4 4 4 4 4;[ ; ; ; ;.EmK&@ .E .E .E .E`.E-2L .E .E .E .E`3      r   r   )rd   r[   r   urllib.parser   -alibabacloud_credentials.provider.refreshabler   r   r   alibabacloud_credentials.httpr   Tea.corer   alibabacloud_credentials_apir	   alibabacloud_credentials.utilsr
   rR   #alibabacloud_credentials.exceptionsr   r   r   r   rs   r   r   <module>r      s      ! ! ! ! ! ! k k k k k k k k k k 5 5 5 5 5 5       = = = = = = A A A A A A C C C C C C           L L L L L"6 L L L L Lr   