
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
,î[9  ã               @   sR   d Z ddlmZmZ ddlZddlmZ ddlmZ ej	e
ƒZG dd	„ d	eƒZdS )
z±
oauthlib.oauth1.rfc5849.endpoints.signature_only
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This module is an implementation of the signing logic of OAuth 1.0 RFC 5849.
é    )Úabsolute_importÚunicode_literalsNé   )Úerrorsé   )ÚBaseEndpointc               @   s   e Zd ZdZddd„ZdS )ÚSignatureOnlyEndpointz>An endpoint only responsible for verifying an oauth signature.ÚGETNc       
   !   C   s6  y| j ||||ƒ}W n0 tjk
rD } ztjd| ƒ d
S d}~X nX y| j|ƒ | j|ƒ W n4 tjk
r’ } ztjd| ƒ d|fS d}~X nX | jj|j	|j
|j|ƒs¾tjdƒ d|fS | jj|j	|ƒ}|sÜ| jj|_	| j|ƒ}||jd< ||jd< t||fƒ}	|	�s.tjdƒ tjd|ƒ tjd	|ƒ |	|fS )a°  Validate a signed OAuth request.

        :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.
        :returns: A tuple of 2 elements.
                  1. True if valid, False otherwise.
                  2. An oauthlib.common.Request object.
        z.Exception caught while validating request, %s.FNz.[Failure] verification failed: timestamp/nonceZclientZ	signaturez&[Failure] request verification failed.zValid client: %szValid signature: %s)FN)Z_create_requestr   ZOAuth1ErrorÚlogÚinfoZ_check_transport_securityZ_check_mandatory_parametersZrequest_validatorZvalidate_timestamp_and_nonceZ
client_keyZ	timestampZnonceÚdebugZvalidate_client_keyZdummy_clientZ_check_signatureZvalidator_logÚall)
ÚselfZuriZhttp_methodZbodyZheadersZrequestÚerrZvalid_clientZvalid_signatureÚv© r   ú$/usr/lib/python3.6/signature_only.pyÚvalidate_request   s<    



	





z&SignatureOnlyEndpoint.validate_request)r	   NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r      s    r   )r   Z
__future__r   r   ZloggingÚ r   Úbaser   Z	getLoggerr   r
   r   r   r   r   r   Ú<module>   s   
