cbdZddlZddlmZddlmZej eZGddeZ 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) BaseEndpointceZdZdZ ddZy)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)aCreate 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)urirealmsclientresource_ownerrealm signaturez&[Failure] request verification failed.zValid client: %szValid token: %szValid realm: %szValid signature: %s)_create_requestr OAuth1Error_check_transport_security_check_mandatory_parametersresource_owner_keyrequest_validatorcheck_access_tokenvalidate_timestamp_and_nonce client_key timestampnoncevalidate_client_key dummy_clientvalidate_access_tokendummy_access_tokenvalidate_realmsr _check_signature validator_logallloginfo) selfr http_methodbodyheadersr request valid_clientvalid_resource_owner valid_realmvalid_signaturevs L/usr/lib/python3/dist-packages/oauthlib/oauth1/rfc5849/endpoints/resource.py#validate_protected_resource_requestz4ResourceEndpoint.validate_protected_resource_request5s **3 T7KG "  * *7 3  , ,W 5))'> !%%88**,'> !%%BB""G$5$5w}}g$77C9'> !--AA   ) !%!7!7!D!DG  $55KK    : :G E#)-)?)?)R)RG &0,,< HH' 6 HH&(< = HH& 4 HH*O <'z{!!   !! "'> ! "s"I"I5I21I25JJ)GETNNN)__name__ __module__ __qualname____doc__r1r0rrs DDILPnr8r) r6loggingrbaser getLoggerr3r$rr7r8r0r=s5g!R|Rr8