
    Ki                     n    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	  G d de      Z
 G d	 d
ee      Zy)    )Session)AssertionClient)JWTBearerGrant   )
OAuth2Auth)update_session_configurec                       e Zd Zd Zy)AssertionAuthc                     | j                   rV| j                  r/| j                  j                  | j                   j                        r| j                   j	                         S y y )N)clienttoken
is_expiredleewayrefresh_token)selfs    /home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/authlib/integrations/requests_client/assertion_session.pyensure_active_tokenz!AssertionAuth.ensure_active_token   sI    ;;

djj33DKK4F4FG;;,,.. H     N)__name__
__module____qualname__r    r   r   r
   r
   
   s    /r   r
   c                   v     e Zd ZdZeZej                  Zeej                  iZ
eZ	 	 	 	 	 	 	 ddZd fd	Z xZS )AssertionSessionzConstructs a new Assertion Framework for OAuth 2.0 Authorization Grants
    per RFC7521_.

    .. _RFC7521: https://tools.ietf.org/html/rfc7521
    c                     t        j                  |        |	| _        t        | |       t	        j                  | f| |||||||||
d
| y )N)
sessiontoken_endpointissuersubjectaudience
grant_typeclaimstoken_placementscoper   )r   __init__default_timeoutr   r   )r   r   r   r   r    r!   r"   r#   r$   r&   r   kwargss               r   r%   zAssertionSession.__init__    sb     	. v.  	
)!+	
 	
r   c                     | j                   r|j                  d| j                          |s|| j                  }t        |   ||fd|i|S )z-Send request with auto refresh token feature.timeoutauth)r&   
setdefault
token_authsuperrequest)r   methodurlwithhold_tokenr*   r'   	__class__s         r   r.   zAssertionSession.request@   sM    i)=)=>$,??Dwvs@@@@r   )NNNheaderNN<   )FN)r   r   r   __doc__r
   token_auth_classr   
GRANT_TYPEJWT_BEARER_GRANT_TYPEsignASSERTION_METHODSDEFAULT_GRANT_TYPEr%   r.   __classcell__)r2   s   @r   r   r      s`     %*55~22 /  
@A Ar   r   N)requestsr   authlib.oauth2.rfc7521r   authlib.oauth2.rfc7523r   oauth2_sessionr   utilsr   r
   r   r   r   r   <module>rB      s0     2 1 & +/J /4A 4Ar   