o
    ÿÑÐbê  ã                   @   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 )NZoauth_consumer_keyZoauth_token)r   Z	client_idr   Zget_client_by_idr   ÚclientÚtokenÚget_token_credentialr   Z
credentialZvalidate_timestamp_and_nonceZvalidate_oauth_signature)ÚselfÚmethodÚuriÚbodyÚheadersÚrequestr   r	   © r   úh/var/www/secure340b-portal/env/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)	Zbase_serverr   Úwrapperr   Úerrorsr   r   r   r   r   r   r   r   Ú<module>   s    