
    ([f{
                     8    d dl mZ d dlmZ  G d d          ZdS )    )	to_native)OAuth2Errorc                   v    e Zd ZdZdZi ZdZeZ	 	 d
dZ	e
d             Zej        d             Zd Zd Zd	 ZdS )AssertionClientzConstructs a new Assertion Framework for OAuth 2.0 Authorization Grants
    per RFC7521_.

    .. _RFC7521: https://tools.ietf.org/html/rfc7521
    Nheaderc
                     || _         ||}|| _        || j        }|| _        || _        || _        || _        || _        |	| _        | j	        | 	                    d ||           | _
        |
| _        d S N)sessiontoken_endpointDEFAULT_GRANT_TYPE
grant_typeissuersubjectaudienceclaimsscopetoken_auth_class
token_auth_kwargs)selfr
   r   r   r   r   r   r   token_placementr   kwargss              Q/var/www/piapp/venv/lib/python3.11/site-packages/authlib/oauth2/rfc7521/client.py__init__zAssertionClient.__init__   s     %H,0J$  
 ,"33D/4PPDO    c                     | j         j        S r	   )r   token)r   s    r   r   zAssertionClient.token*   s    $$r   c                 :    | j                             |           d S r	   )r   	set_token)r   r   s     r   r   zAssertionClient.token.   s    !!%(((((r   c                     | j         | j                 } |d| j        | j        | j        | j        d| j        }t          |          | j        d}| j        r
| j        |d<   | 	                    |          S )zUsing Assertions as Authorization Grants to refresh token as
        described in `Section 4.1`_.

        .. _`Section 4.1`: https://tools.ietf.org/html/rfc7521#section-4.1
        )r   r   r   r   )	assertionr   r    )
ASSERTION_METHODSr   r   r   r   r   r   r   r   _refresh_token)r   generate_assertionr!   datas       r   refresh_tokenzAssertionClient.refresh_token2   s     "3DOD&& 
;L];	
 

 l
 
	 #9--/
 
 : 	' JDM""4(((r   c                     |j         dk    r|                                 |                                }d|v r0|                     |d         |                    d                    || _        | j        S )Ni  errorerror_description)r)   description)status_coderaise_for_statusjsonoauth_error_classgetr   )r   respr   s      r   parse_response_tokenz$AssertionClient.parse_response_tokenI   s    s""!!###		e((Gn!II&9:: )   
 
zr   c                 r    | j                             d| j        |d          }|                     |          S )NPOSTT)r&   withhold_token)r
   requestr   r2   )r   r&   r1   s      r   r$   zAssertionClient._refresh_tokenW   sB    |##D'd4 $ I I ((...r   )NNNr   N)__name__
__module____qualname____doc__r   r#   r   r   r/   r   propertyr   setterr'   r2   r$   r"   r   r   r   r      s         
 # 9=15   4 % % X% \) ) \)) ) ).  / / / / /r   r   N)authlib.common.encodingr   authlib.oauth2.baser   r   r"   r   r   <module>r?      se    - - - - - - + + + + + +V/ V/ V/ V/ V/ V/ V/ V/ V/ V/r   