o
    ©D®fê  ã                   @   s@   d dl mZ d dlmZ d dlmZmZmZ G dd„ deƒZdS )é   )Ú
BaseServer)ÚOAuth1Request)ÚMissingRequiredParameterErrorÚInvalidClientErrorÚInvalidTokenErrorc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚResourceProtectorc                 C   sx   t ||||ƒ}|jstdƒ‚|  |j¡}|stƒ ‚||_|js#tdƒ‚|  |¡}|s-tƒ ‚||_	|  
|¡ |  |¡ |S )NÚoauth_consumer_keyÚoauth_token)r   Ú	client_idr   Úget_client_by_idr   ÚclientÚtokenÚget_token_credentialr   Ú
credentialÚvalidate_timestamp_and_nonceÚvalidate_oauth_signature)ÚselfÚmethodÚuriÚbodyÚheadersÚrequestr   r   © r   úb/home/ubuntu/webapp/venv/lib/python3.10/site-packages/authlib/oauth1/rfc5849/resource_protector.pyÚvalidate_request   s    


z"ResourceProtector.validate_requestc                 C   s   t ƒ ‚)zÌFetch the token credential from data store like a database,
        framework should implement this function.

        :param request: OAuth1Request instance
        :return: Token model instance
        )ÚNotImplementedError)r   r   r   r   r   r   "   s   z&ResourceProtector.get_token_credentialN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   
   s    r   N)	Úbase_serverr   Úwrapperr   Úerrorsr   r   r   r   r   r   r   r   Ú<module>   s    