Ë
    >²XjÎ  ã                   ób   — d Z ddlZddlmZ ddlmZ  ej                  e«      Z G d„ de«      Z	y)	zº
oauthlib.oauth1.rfc5849.endpoints.resource
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This module is an implementation of the resource protection provider logic of
OAuth 1.0 RFC 5849.
é    Né   )Úerrorsé   )ÚBaseEndpointc                   ó   — e Zd ZdZ	 	 dd„Zy)ÚResourceEndpointa!  An endpoint responsible for protecting resources.

    Typical use is to instantiate with a request validator and invoke the
    ``validate_protected_resource_request`` in a decorator around a view
    function. If the request is valid, invoke and return the response of the
    view. If invalid create and return an error response directly from the
    decorator.

    See :doc:`/oauth1/validator` for details on which validator methods to implement
    for this endpoint.

    An example decorator::

        from functools import wraps
        from your_validator import your_validator
        from oauthlib.oauth1 import ResourceEndpoint
        endpoint = ResourceEndpoint(your_validator)

        def require_oauth(realms=None):
            def decorator(f):
                @wraps(f)
                def wrapper(request, *args, **kwargs):
                    v, r = provider.validate_protected_resource_request(
                            request.url,
                            http_method=request.method,
                            body=request.data,
                            headers=request.headers,
                            realms=realms or [])
                    if v:
                        return f(*args, **kwargs)
                    else:
                        return abort(403)
    Nc                 ó$  — 	 | j                  ||||«      }	 | j                  |«       | j	                  |«       |j
                  sd|fS | j                  j                  |j
                  «      sd|fS | j                  j                  |j                  |j                  |j                  ||j
                  ¬«      sd|fS | j                  j                  |j                  |«      }|s| j                  j                  |_	        | j                  j                  |j                  |j
                  |«      }|s| j                  j                  |_        | j                  j!                  |j                  |j
                  ||j"                  |¬«      }	| j%                  |«      }
||j&                  d<   ||j&                  d<   |	|j&                  d<   |
|j&                  d<   t)        |||	|
f«      }|smt*        j-                  d	«       t*        j-                  d
|«       t*        j-                  d|«       t*        j-                  d|	«       t*        j-                  d|
«       ||fS # t        j                  $ r Y yw xY w# t        j                  $ r d|fcY S w xY w)aœ  Create a request token response, with a new request token if valid.

        :param uri: The full URI of the token request.
        :param http_method: A valid HTTP verb, i.e. GET, POST, PUT, HEAD, etc.
        :param body: The request body as a string.
        :param headers: The request headers as a dict.
        :param realms: A list of realms the resource is protected under.
                       This will be supplied to the ``validate_realms``
                       method of the request validator.
        :returns: A tuple of 2 elements.
                  1. True if valid, False otherwise.
                  2. An oauthlib.common.Request object.
        )FNF)Úaccess_token)ÚuriÚrealmsÚclientÚresource_ownerÚrealmÚ	signaturez&[Failure] request verification failed.zValid client: %szValid token: %szValid realm: %szValid signature: %s)Ú_create_requestr   ÚOAuth1ErrorÚ_check_transport_securityÚ_check_mandatory_parametersÚresource_owner_keyÚrequest_validatorÚcheck_access_tokenÚvalidate_timestamp_and_nonceÚ
client_keyÚ	timestampÚnonceÚvalidate_client_keyÚdummy_clientÚvalidate_access_tokenÚdummy_access_tokenÚvalidate_realmsr   Ú_check_signatureÚvalidator_logÚallÚlogÚinfo)Úselfr   Úhttp_methodÚbodyÚheadersr   ÚrequestÚvalid_clientÚvalid_resource_ownerÚvalid_realmÚvalid_signatureÚvs               úp/var/www/html/content_generation/venv/lib/python3.12/site-packages/oauthlib/oauth1/rfc5849/endpoints/resource.pyÚ#validate_protected_resource_requestz4ResourceEndpoint.validate_protected_resource_request5   s€  € ð	Ø×*Ñ*¨3°¸TÀ7ÓKˆGð	"Ø×*Ñ*¨7Ô3Ø×,Ñ,¨WÔ5ð ×)Ò)Ø˜'�>Ð!à×%Ñ%×8Ñ8Ø×*Ñ*ô,à˜'�>Ð!à×%Ñ%×BÑBØ×"Ñ" G×$5Ñ$5°w·}±}ÀgØ$×7Ñ7ð Cô 9ð ˜'�>Ð!ð ×-Ñ-×AÑAØ×Ñ ó)ˆáØ!%×!7Ñ!7×!DÑ!DˆGÔð  $×5Ñ5×KÑKØ×Ñ × :Ñ :¸Gó EÐá#Ø)-×)?Ñ)?×)RÑ)RˆGÔ&ð0 ×,Ñ,×<Ñ<¸W×=OÑ=OØ=D×=WÑ=WÐY`Ðfm×fqÑfqØDJð =ó Lˆð ×/Ñ/°Ó8ˆð +7ˆ×Ñ˜hÑ'Ø2Fˆ×ÑÐ.Ñ/Ø)4ˆ×Ñ˜gÑ&Ø-<ˆ×Ñ˜kÑ*ô �Ð3°[Ø ð"ó #ˆáÜ�H‰HÐ=Ô>Ü�H‰HÐ'¨Ô6Ü�H‰HÐ&Ð(<Ô=Ü�H‰HÐ&¨Ô4Ü�H‰HÐ*¨OÔ<Ø�'ˆzÐøô{ ×!Ñ!ò 	Ùð	ûô ×!Ñ!ò 	"Ø˜'�>Ò!ð	"ús"   ‚I —"I5 ÉI2É1I2É5JÊJ)ÚGETNNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r1   © ó    r0   r   r      s   „ ñ ðD DIØLPônr8   r   )
r6   ÚloggingÚ r   Úbaser   Ú	getLoggerr3   r$   r   r7   r8   r0   Ú<module>r=      s5   ðñó å Ý à€g×Ñ˜Ó!€ôR�|õ Rr8   