
    ɯei                    N    d dl mZ d dlmZ ddlmZ ddlmZmZ  G d de      Z	y	)
    )annotations)Any   )OAUTH_AUTHENTICATOR   )AuthByPluginAuthTypec                  p     e Zd ZdZed	d       Zed
d       Zd fdZddZ	 	 	 	 ddZ	ddZ
ddZ xZS )AuthByOAuthzgOAuth Based Authentication.

    Works by accepting an OAuth token and using that to authenticate.
    c                "    t         j                  S N)r	   OAUTHselfs    `/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/snowflake/connector/auth/oauth.pytype_zAuthByOAuth.type_   s    ~~    c                    | j                   S )zReturns the token._oauth_tokenr   s    r   assertion_contentzAuthByOAuth.assertion_content   s        r   c                2    t        |   di | || _        y)z,Initializes an instance with an OAuth Token.N )super__init__r   )r   oauth_tokenkwargs	__class__s      r   r   zAuthByOAuth.__init__   s    "6"(3r   c                    d | _         y r   r   r   s    r   reset_secretszAuthByOAuth.reset_secrets   s
     r   c                     y)z@Nothing to do here, token should be obtained outside the driver.Nr   r   r   s     r   preparezAuthByOAuth.prepare!   s    
 	r   c                
    ddiS )NsuccessFr   r"   s     r   reauthenticatezAuthByOAuth.reauthenticate(   s    5!!r   c                @    t         |d   d<   | j                  |d   d<   y)zUpdate some information required by OAuth.

        OAuth needs the authenticator and token attributes set, as well as loginname, which is set already in auth.py.
        dataAUTHENTICATORTOKENN)r   r   )r   bodys     r   update_bodyzAuthByOAuth.update_body+   s&    
 )<V_% $ 1 1VWr   )returnr	   )r-   z
str | None)r   strr-   None)r-   r/   )r   r   r-   r/   )r   r   r-   zdict[str, bool])r+   zdict[Any, Any]r-   r/   )__name__
__module____qualname____doc__propertyr   r   r   r    r#   r&   r,   __classcell__)r   s   @r   r   r   
   s[    
   ! !4
! 
"2r   r   N)

__future__r   typingr   networkr   	by_pluginr   r	   r   r   r   r   <module>r:      s    "  ) -'2, '2r   