
    E0jt$                         d dl Z d dlZd dlZd dl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 dlmZ d	ed
efdZd	ed
efdZded
efdZ G d de          ZdS )    N)CredentialsRefreshResultRefreshCachedSupplier)HttpOptions)TeaCore)ICredentialsProvider)	auth_util)parameter_helper)CredentialException	file_pathreturnc                    K   t          j        | d          4 d {V }|                                 d {V }d d d           d {V  n# 1 d {V swxY w Y   |S Nr)mode)aiofilesopenreadr   filetokens      n/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/alibabacloud_credentials/provider/oidc.py_get_token_asyncr      s      }YS111 " " " " " " "Tiikk!!!!!!" " " " " " " " " " " " " " " " " " " " " " " " " " "Ls   A
AAc                     t          | d          5 }|                                }d d d            n# 1 swxY w Y   |S r   )r   r   r   s      r   
_get_tokenr      sy    	ic	"	"	" d		              Ls   377
expirationc                     | dk     r5t          t          j        t          j                                        dz   S | dz
  S )Nr       )inttimemktime	localtime)r   s    r   _get_stale_timer$      s;    A~~4;t~//0011G;;    c                       e Zd ZdZdZdZddddedddddd
dededed	e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 )OIDCRoleArnCredentialsProviderr   i  i'  N)
role_arnoidc_provider_arnoidc_token_file_pathrole_session_nameduration_secondspolicysts_region_idsts_endpoint
enable_vpchttp_optionsr(   r)   r*   r+   r,   r-   r.   r/   r0   r1   c       
   	         |pt           j        | _        |pt           j        | _        |pt           j        | _        |pt           j        | _        || _	        || _
        | j        | j        dk    rGdt          t          t          j        t          j                                                   | _        | j	        | j        | _	        | j	        dk     rt#          d          | j        | j        dk    rt#          d          | j        | j        dk    rt#          d          | j        | j        dk    rt#          d          ||dk    r|| _        n|	|	rdnd	}n&t           j                                        d
k    rdnd	}||dk    r| d| d| _        n;t           j        (t           j        dk    r| dt           j         d| _        nd| _        |
|
nt-                      | _        | j        j        | j        j        nt2          j        | j        j        | j        j        nt2          j        | j        j        d| _        t?          | j         | j!                  | _"        d S )N zcredentials-python-r   zFsession duration should be in the range of 900s - max session durationzGrole_arn or environment variable ALIBABA_CLOUD_ROLE_ARN cannot be emptyzYoidc_provider_arn or environment variable ALIBABA_CLOUD_OIDC_PROVIDER_ARN cannot be emptyzZoidc_token_file_path or environment variable ALIBABA_CLOUD_OIDC_TOKEN_FILE cannot be emptyzsts-vpcststrue.z.aliyuncs.comzsts.aliyuncs.com)connectTimeoutreadTimeout
httpsProxy)refresh_callablerefresh_callable_async)#auenvironment_role_arn	_role_arnenvironment_oidc_provider_arn_oidc_provider_arnenvironment_oidc_token_file_oidc_token_file_pathenvironment_role_session_name_role_session_name_duration_seconds_policystrr    r!   r"   r#   DEFAULT_DURATION_SECONDS
ValueError_sts_endpointenvironment_enable_vpclowerenvironment_sts_regionr   _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-   r.   r/   r0   r1   prefixs               r   __init__z'OIDCRoleArnCredentialsProvider.__init__&   s    "<R%<"3"Wr7W%9%[R=[""3"Wr7W!1"*d.E.K.K&eCDKPTP^P`P`DaDa@b@b<c<c&e&eD#!)%)%BD"!C''efff>!T^r%9%9fggg"*d.E.K.Kkm m m%-1Kr1Q1Qln n n #(:(:!-D%&0;e&(&?&E&E&G&G6&Q&QW\(]b-@-@(.%M%M%M%M%M""*62;TXZ;Z;Z(.%Y%Y1J%Y%Y%Y""%7"-9-E\\;==DHDVDfDrd0@@  yW  yo>B>P>]>i4-::  pN  pc,2!
 !

 #8!6#'#B#
 #
 #
r%   r   c                 4    | j                                         S N)rW   
_sync_callrX   s    r   get_credentialsz.OIDCRoleArnCredentialsProvider.get_credentialsa   s    &11333r%   c                 D   K   | j                                          d {V S r\   )rW   _async_callr^   s    r   get_credentials_asyncz4OIDCRoleArnCredentialsProvider.get_credentials_asyncd   s-      ,88:::::::::r%   c           
         t          | j                  }t          j                    }dddt	          | j                  | j        | j        || j        t          j	                    d	|_
        | j        | j        dk    r| j        |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AssumeRoleWithOIDCJSONz
2015-04-01)	ActionFormatVersionDurationSecondsRoleArnOIDCProviderArn	OIDCTokenRoleSessionName	Timestampr3   Policyhttpshost   z<error refreshing credentials from oidc_role_arn, http_code: z
, result: zutf-8r   z8error retrieving credentials from oidc_role_arn 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   rB   phget_new_requestrG   rE   r>   r@   rD   get_iso_8061_datequeryrF   protocolrJ   headersr   	do_actionrT   status_coder   bodydecodejsonloadsgetr!   strptimecalendartimegmr   get_provider_namer   r$   	rX   r   tea_requestresponsediccre
time_arrayr   credentialss	            r   rU   z3OIDCRoleArnCredentialsProvider._refresh_credentialsg   s   4566(***#"4#9::~#6#6-//

 

 <#(:(:*.,Kh'&&*&8F#$[$2GHH3&&% OxOc  O  Oowo|  pD  pD  EL  pM  pM  O  OP P P j--g6677##%j8=K_K_`gKhKhjjl l l ggm$$##'8'C'C^aGaGa%j8=K_K_`gKhKhjjl l l ]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                   d {V }t          j                    }dddt	          | j                  | j        | j        || j        t          j	                    d	|_
        | j        | j        dk    r| j        |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 rd   )!r   rB   r~   r   rG   rE   r>   r@   rD   r   r   rF   r   rJ   r   r   async_do_actionrT   r   r   r   r   r   r   r   r!   r   r   r   r   r   r   r$   r   s	            r   rV   z9OIDCRoleArnCredentialsProvider._refresh_credentials_async   s     &t'ABBBBBBBB(***#"4#9::~#6#6-//

 

 <#(:(:*.,Kh'&&*&8F# 0d>STTTTTTTT3&&% OxOc  O  Oowo|  pD  pD  EL  pM  pM  O  OP P P j--g6677##%j8=K_K_`gKhKhjjl l l ggm$$##'8'C'C^aGaGa%j8=K_K_`gKhKhjjl l l ]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oidc_role_arn r^   s    r   r   z0OIDCRoleArnCredentialsProvider.get_provider_name   s    r%   )__name__
__module____qualname__rH   rP   rR   rG   r    boolr   rZ   r   r_   rb   r   rU   rV   r   r   r%   r   r'   r'   !   sb       #"  "&*.-1*.)A#&*%)$(-19
 9
 9
9
$'9
 (+9
 %(	9

 $'9
 9
 !$9
  #9
 "9
  +9
 9
 9
 9
v4 4 4 4 4;[ ; ; ; ;1EmK&@ 1E 1E 1E 1Ef1E-2L 1E 1E 1E 1Ef3      r%   r'   )r   r   r!   r   -alibabacloud_credentials.provider.refreshabler   r   r   alibabacloud_credentials.httpr   Tea.corer   alibabacloud_credentials_apir   alibabacloud_credentials.utilsr	   r<   r
   r~   #alibabacloud_credentials.exceptionsr   rG   r   r   r    r$   r'   r   r%   r   <module>r      sX       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c c    # #               m m m m m%9 m m m m mr%   