
    ~h                         d dl mZ d dl mZ d dlmZ d dlmZ d dlmZ ddlmZ ddlm	Z	 dd	l
mZ dd
l
mZ ddl
mZ ddlmZ  G d d      Zd Zd Zd Zy)    )parse_http_list)parse_keqv_list)extract_params)
url_decode)urlparse   )%DuplicatedOAuthProtocolParameterError)InsecureTransportError)SIGNATURE_TYPE_BODY)SIGNATURE_TYPE_HEADER)SIGNATURE_TYPE_QUERY)unescapec                       e Zd ZddZed        Zed        Zed        Zed        Zed        Z	ed        Z
ed	        Zed
        Zed        Zy)OAuth1RequestNc                    t        j                  |       || _        || _        || _        |xs i | _        d | _        d | _        d | _        t        j                  |      j                  | _
        t        | j                        | _        t        |      xs g | _        t        |      \  | _        | _        t%        | j                  | j                  | j                         \  | _        | _        g }|j+                  | j                         |j+                  | j                         |j+                  | j                          || _        y N)r
   checkmethoduribodyheadersclient
credentialuserr   queryr   query_paramsr   body_params_parse_authorization_headerauth_paramsrealm_parse_oauth_paramssignature_typeoauth_paramsextendparams)selfr   r   r   r   r%   s         Z/opt/mcp/mcp-sentiment/venv/lib/python3.12/site-packages/authlib/oauth1/rfc5849/wrapper.py__init__zOAuth1Request.__init__   s   $$S)	}" 	&&s+11
&tzz2)$/52'B7'K$$*1Dt//1A1A2
.T. d''(d&&'d&&'    c                 8    | j                   j                  d      S )Noauth_consumer_keyr#   getr&   s    r'   	client_idzOAuth1Request.client_id,   s      $$%9::r)   c                 P    | j                   r| j                   j                         S y r   )r   get_client_secretr.   s    r'   client_secretzOAuth1Request.client_secret0   s!    ;;;;0022 r)   c                 P    | j                   r| j                   j                         S y r   )r   get_rsa_public_keyr.   s    r'   rsa_public_keyzOAuth1Request.rsa_public_key5   s!    ;;;;1133 r)   c                 8    | j                   j                  d      S )Noauth_timestampr,   r.   s    r'   	timestampzOAuth1Request.timestamp:         $$%677r)   c                 8    | j                   j                  d      S )Noauth_callbackr,   r.   s    r'   redirect_urizOAuth1Request.redirect_uri>   s      $$%566r)   c                 8    | j                   j                  d      S )Noauth_signaturer,   r.   s    r'   	signaturezOAuth1Request.signatureB   r9   r)   c                 8    | j                   j                  d      S )Noauth_signature_methodr,   r.   s    r'   signature_methodzOAuth1Request.signature_methodF   s      $$%=>>r)   c                 8    | j                   j                  d      S )Noauth_tokenr,   r.   s    r'   tokenzOAuth1Request.tokenJ   s      $$]33r)   c                 P    | j                   r| j                   j                         S y r   )r   get_oauth_token_secretr.   s    r'   token_secretzOAuth1Request.token_secretN   s!    ????99;; r)   )NN)__name__
__module____qualname__r(   propertyr/   r2   r5   r8   r<   r?   rB   rE   rH    r)   r'   r   r      s    6 ; ; 3 3 4 4 8 8 7 7 8 8 ? ? 4 4 < <r)   r   c              #   P   K   | D ]  \  }}|j                  d      s||f  y w)Noauth_)
startswith)r%   kvs      r'   _filter_oauthrS   T   s.      1<<!a&Ls   &	&c                    | j                  d      }|sg dfS d}|j                         j                  |      rwt        |t	        |      d       }	 t        |      j                         }|D cg c]  \  }}t        |      t        |      f }}}t        |      j                  d      }||fS t        d      c c}}w # t        t        f$ r Y t        d      w xY w)z<Parse an OAuth authorization header into a list of 2-tuples.AuthorizationNzoauth r    zMalformed authorization header)r-   lowerrP   r   lenr   itemsr   dict
IndexError
ValueError)r   authorization_headerauth_schemerX   rQ   rR   r   r    s           r'   r   r   Z   s    ";;74xK!!#..{; 4S5E5G HI	#E*002EBGH$!QHQK!5HKH%))'2E%% 5
66 I J' 	
5
66	s$   C / B; C ;C CCc                    t         t        t        |             ft        t        t        |            ft        t        t        |            fg}|D cg c]
  }|d   s	| }}t        |      dkD  r;|D cg c]  }|d   	 }}t        dj                  dj                  |                  |r|d   d   }t        |d   d         }||fS d }i }||fS c c}w c c}w )Nr   r   zI"oauth_" params must come from only 1 signature type but were found in {},)
r   listrS   r   r   rW   r	   formatjoinrY   )	r   r   r   oauth_params_setr%   pfound_typesr"   r#   s	            r'   r!   r!   m   s    	tM,$?@A	d=#=>?	];%? @A
 .>K6KK
q %56qt663##)6#((;*?#@
 	

 )!,Q/,Q/23 <'' <'' L6s   
CC5CN)urllib.requestr   r   authlib.common.urlsr   r   r   errorsr	   r
   r?   r   r   r   utilr   r   rS   r   r!   rM   r)   r'   <module>rj      sB    * * . * ( 9 * * , + A< A<H7&(r)   