
    i[fk                         d dl Z d dl 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
gZ G d d
ee j                  Z G d dee j                  ZdS )    N)ResponseUSE_CLIENT_DEFAULT)AssertionClient)JWTBearerGrant   )extract_client_kwargs)
OAuth2Auth   )
OAuthErrorAsyncAssertionClientc                   h     e Zd ZeZeZej        Z	e	ej
        iZe	Z	 	 ddZdefdef fdZd Z xZS )	r   Nheaderc	                     t          |	          }
t          j        j        | fi |
 t	          j        | fd ||||||||d	|	 d S N)	sessiontoken_endpointissuersubjectaudience
grant_typeclaimstoken_placementscope)r   httpxAsyncClient__init___AssertionClientselfr   r   r   r   r   r   r   r   kwargsclient_kwargss              f/var/www/piapp/venv/lib/python3.11/site-packages/authlib/integrations/httpx_client/assertion_client.pyr   zAsyncAssertionClient.__init__   sz     .f55"499=999!	
)&'*V+5		
 	
 =C		
 	
 	
 	
 	
    Freturnc                    K   |sJ|t           u rA| j        r| j                                        r|                                  d{V  | j        } t                      j        ||fd|i| d{V S )-Send request with auto refresh token feature.Nauthr   token
is_expiredrefresh_token
token_authsuperrequestr   methodurlwithhold_tokenr'   r    	__class__s         r"   r.   zAsyncAssertionClient.request"   s       	#$*<"<"<: +!6!6!8!8 +((*********?D$UWW_C. .".&,. . . . . . . . 	.r#   c                 x   K   |                      d| j        |d           d {V }|                     |          S )NPOSTT)datar2   )r.   r   parse_response_token)r   r6   resps      r"   _refresh_tokenz#AsyncAssertionClient._refresh_token,   sf      \\D'd4 " I I I I I I I I ((...r#   NNNr   N)__name__
__module____qualname__r	   token_auth_classr   oauth_error_classr   
GRANT_TYPEJWT_BEARER_GRANT_TYPEsignASSERTION_METHODSDEFAULT_GRANT_TYPEr   r   r   r.   r9   __classcell__r3   s   @r"   r   r      s        !"*5~2 /RV>B
 
 
 
 9>DV . .em . . . . . ./ / / / / / /r#   c                   \     e Zd ZeZeZej        Z	e	ej
        iZe	Z	 	 ddZdef fd	Z xZS )r   Nr   c	                     t          |	          }
t          j        j        | fi |
 t	          j        | f| ||||||||d	|	 d S r   )r   r   Clientr   r   r   s              r"   r   zAssertionClient.__init__<   sy     .f55d44m444!	
)&'*V+5		
 	
 =C		
 	
 	
 	
 	
r#   Fc                     |sD|t           u r;| j        r| j                                        r|                                  | j        } t                      j        ||fd|i|S )r&   r'   r(   r/   s         r"   r.   zAssertionClient.requestI   s     	#$*<"<"<: %!6!6!8!8 %""$$$?DuwwC. .".&,. . 	.r#   r:   )r;   r<   r=   r	   r>   r   r?   r   r@   rA   rB   rC   rD   r   r   r.   rE   rF   s   @r"   r   r   3   s        !"*5~2 /RV>B
 
 
 
 38>P . . . . . . . . . .r#   r   )r   r   r   authlib.oauth2.rfc7521r   r   authlib.oauth2.rfc7523r   utilsr   oauth2_clientr	   base_clientr   __all__r   r   rI    r#   r"   <module>rR      s     . . . . . . . . F F F F F F 1 1 1 1 1 1 ( ( ( ( ( ( % % % % % % $ $ $ $ $ $!
"$/ $/ $/ $/ $/+U-> $/ $/ $/N. . . . .& . . . . .r#   