
    Ki                         d dl 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d
lmZ dgZ G d dee j                        Z G d dee j"                        Zy)    N)USE_CLIENT_DEFAULT)Response)AssertionClient)JWTBearerGrant   )
OAuthError   )
OAuth2Auth)extract_client_kwargsAsyncAssertionClientc                        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   c	                     t        |	      }
t        j                  j                  | fi |
 t	        j                  | fd ||||||||d	|	 y )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              ~/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/authlib/integrations/httpx_client/assertion_client.pyr   zAsyncAssertionClient.__init__   sb     .f5""49=9!!	
)!+	
 	
    Freturnc                    K   |sR|t         u rJ| j                  r| j                  j                         r| j                          d{    | j                  }t        |   ||fd|i| d{   S 7 +7 w)-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.request5   so      $*<"<::!6!6!8((***??DW_VSFtFvFFF + Gs$   AA7A3&A7.A5/A75A7c                 ~   K   | j                  d| j                  |d       d {   }| j                  |      S 7 w)NPOSTT)datar0   )r,   r   parse_response_token)r   r4   resps      r    _refresh_tokenz#AsyncAssertionClient._refresh_token@   sE     \\D''d4 " 
 
 ((..	
s   #=;=NNNheaderN)__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,   r7   __classcell__r1   s   @r    r   r      sh    !"*55~22 /  
< +06H	G		G/r!   c                   v     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   c	                     t        |	      }
|
j                  dd       }|t        j                  |      |
d<   t        j                  j
                  | fi |
 t        j
                  | f| ||||||||d	|	 y )Napp)rH   	transportr   )r   popr   WSGITransportClientr   r   )r   r   r   r   r   r   r   r   r   r   r   	app_values               r    r   zAssertionClient.__init__Q   s     .f5!%%eT2	 ).)<)<)KM+&d4m4!!	
)!+	
 	
r!   Fc                     |sJ|t         u rB| j                  r| j                  j                         r| j                          | j                  }t        |   ||fd|i|S )r$   r%   r&   r-   s         r    r,   zAssertionClient.requests   sV     $*<"<::!6!6!8""$??Dwvs@@@@r!   r8   )r:   r;   r<   r
   r=   r   r>   r   r?   r@   rA   rB   rC   r   r   r,   rD   rE   s   @r    r   r   H   sa    !"*55~22 /   
F +06H	A 	Ar!   r   )r   r   r   authlib.oauth2.rfc7521r   r   authlib.oauth2.rfc7523r   base_clientr   oauth2_clientr
   utilsr   __all__r   r   rL    r!   r    <module>rV      sP     $  F 1 $ % (!
"6/+U->-> 6/r4A& 4Ar!   