HOME


Mini Shell 1.0
DIR: /lib/python3/dist-packages/oauthlib/oauth1/rfc5849/endpoints/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/oauthlib/oauth1/rfc5849/endpoints/__pycache__/resource.cpython-312.pyc
�

�c���b�dZddlZddlmZddlmZeje�ZGd�de�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��eZdZdZ		dd�Zy)�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
sd|fS|jj|j
�sd|fS|jj|j|j|j||j
��sd|fS|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
|
�||fS#tj$rYywxYw#tj$rd|fcYSwxYw)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.zValid client: %szValid token: %szValid realm: %szValid 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            �L/usr/lib/python3/dist-packages/oauthlib/oauth1/rfc5849/endpoints/resource.py�#validate_protected_resource_requestz4ResourceEndpoint.validate_protected_resource_request5s���	��*�*�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�1I2�5J�J)�GETNNN)�__name__�
__module__�__qualname__�__doc__r1��r0rrs�� �DDI�LP�nr8r)
r6�logging�r�baser�	getLoggerr3r$rr7r8r0�<module>r=s5�������g����!��R�|�Rr8