관리-도구
편집 파일: base.cpython-39.pyc
a �#/d�* � @ sr d Z ddlZddlmZmZmZ ddlmZmZm Z m Z mZmZm Z mZmZmZmZmZmZmZ G dd� d�ZdS )z� oauthlib.oauth1.rfc5849.endpoints.base ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This module is an implementation of various logic needed for signing and checking OAuth 1.0 RFC 5849 requests. � N)�CaseInsensitiveDict�Request�generate_token� )�CONTENT_TYPE_FORM_URLENCODED�SIGNATURE_HMAC_SHA1�SIGNATURE_HMAC_SHA256�SIGNATURE_HMAC_SHA512�SIGNATURE_RSA_SHA1�SIGNATURE_RSA_SHA256�SIGNATURE_RSA_SHA512�SIGNATURE_PLAINTEXT�SIGNATURE_TYPE_AUTH_HEADER�SIGNATURE_TYPE_BODY�SIGNATURE_TYPE_QUERY�errors� signature�utilsc @ s@ e Zd Zddd�Zdd� Zdd� Zdd � Zd d� Zdd d�ZdS )�BaseEndpointNc C s || _ |pt| _d S )N)�request_validatorr �token_generator)�selfr r � r �J/usr/lib/python3.9/site-packages/oauthlib/oauth1/rfc5849/endpoints/base.py�__init__ s zBaseEndpoint.__init__c C s� t j|jddd�}t j|jdd�}t j|jdd�}g }|�|� |�|� |�|� ttdd� t|t � |�ft|t � |�ft|t � |�ff��}t |�dkr�d d � |D �}tjdd�|�fd ��z|d \}}} W n ty� tjdd ��Y n0 ||| fS )z�Extracts parameters from query, headers and body. Signature type is set to the source in which parameters were found. FT)�headers�exclude_oauth_signatureZ with_realm)�bodyr )� uri_queryr c S s | d S )Nr r )�sr r r �<lambda>- � z=BaseEndpoint._get_signature_type_and_params.<locals>.<lambda>� c S s g | ]}|d �qS )r r )�.0r r r r � <listcomp>7 r! z?BaseEndpoint._get_signature_type_and_params.<locals>.<listcomp>zFoauth_ params must come from only 1 signaturetype but were found in %sz, ��descriptionr �#Missing mandatory OAuth parameters.)r Zcollect_parametersr r r �extend�list�filterr r Zfilter_oauth_paramsr r �lenr �InvalidRequestError�join� IndexError) r �requestZ header_paramsZbody_paramsZquery_params�paramsZ!signature_types_with_oauth_paramsZfound_types�signature_type�oauth_paramsr r r �_get_signature_type_and_params sP ��� ���� ����z+BaseEndpoint._get_signature_type_and_paramsc C s& t |pi �}d|v r0t|d v r0t||||�}nt||d|�}| �|�\}}}tt|��t|�krntjdd��t|�}|�d�|_ |�d�|_ |�d�|_|�d�|_|�d �|_ |�d �|_|�d�|_|�d�|_t|��d �|_||_dd� |D �|_d |j�dd�v �r"dd� |jD �|_|S )NzContent-Type� zDuplicate OAuth1 entries.r% �oauth_signatureZoauth_consumer_keyZoauth_tokenZoauth_nonceZoauth_timestampZoauth_callbackZoauth_verifierZoauth_signature_method�realmc S s g | ]\}}|d kr||f�qS )r5 r �r# �k�vr r r r$ f r! z0BaseEndpoint._create_request.<locals>.<listcomp>Z Authorizationc S s g | ]\}}|d kr||f�qS )r6 r r7 r r r r$ i s �)r r r r3 r+ �dictr r, �getr � client_key�resource_owner_key�nonce� timestampZredirect_uriZverifier�signature_methodr6 r2 r0 r ) r �uriZhttp_methodr r r/ r1 r0 r2 r r r �_create_requestF s: ����zBaseEndpoint._create_requestc C s$ | j jr |j�� �d�s t�� �d S )Nzhttps://)r Zenforce_sslrA �lower� startswithr ZInsecureTransportError)r r/ r r r �_check_transport_securityn s �z&BaseEndpoint._check_transport_securityc C s$ t |j|j|j|j|jf�s(tjdd��|j| jj vrPtj d�|j| jj �d��d|jv rt|jd dkrttjdd��t |j�dkr�tjdd��zt|j�}W n ty� tjd d��Y n.0 tt�� | �| jjkr�tjd | jj d��| j�|j��stjdd��| j�|j��s tjdd��d S ) Nr'