File: //usr/lib/python3/dist-packages/oauthlib/oauth1/rfc5849/endpoints/__pycache__/base.cpython-310.pyc
o
���a{- � @ 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 �H/usr/lib/python3/dist-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
tyv tjdd
��w ||| 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_signature�
with_realm)�bodyr )� uri_queryr c S s | d S )Nr r )�sr r r �<lambda>- s z=BaseEndpoint._get_signature_type_and_params.<locals>.<lambda>� c S s g | ]}|d �qS )r r )�.0r! r r r �
<listcomp>7 s 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 �collect_parametersr r r �extend�list�filterr r �filter_oauth_paramsr r �lenr �InvalidRequestError�join�
IndexError)
r �request�
header_params�body_params�query_params�params�!signature_types_with_oauth_params�found_types�signature_type�oauth_paramsr r r �_get_signature_type_and_params sR ���
���� �����
z+BaseEndpoint._get_signature_type_and_paramsc C s$ t |pi �}d|v rt|d v rt||||�}nt||d|�}| �|�\}}}tt|��t|�kr7tjdd��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&