
    {hM                         d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
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mZmZ d dlmZ d dlmZmZ  G d de
e         Z G d de	      Ze G d d             Zy)    N)	dataclass)Any)uuid4)	BaseModel	RootModelValidationError)Request)Response)stringify_pydantic_error)PydanticJSONResponse) OAuthAuthorizationServerProviderRegistrationErrorRegistrationErrorCode)ClientRegistrationOptions)OAuthClientInformationFullOAuthClientMetadatac                       e Zd ZU eed<   y)RegistrationRequestrootN)__name__
__module____qualname__r   __annotations__     b/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/mcp/server/auth/handlers/register.pyr   r      s
     r   r   c                   (    e Zd ZU eed<   edz  ed<   y)RegistrationErrorResponseerrorNerror_description)r   r   r   r   r   strr   r   r   r   r      s      Tz!r   r   c                   >    e Zd ZU eeeef   ed<   eed<   dedefdZ	y)RegistrationHandlerprovideroptionsrequestreturnc           
        K   	 |j                          d {   }t        j                  |      }t        t                     }d }|j                  dk7  rt        j                  d      }|j                  A| j                  j                  +dj                  | j                  j                        |_        n|j                  | j                  j                   t#        |j                  j%                               }t#        | j                  j                         }|j'                  |      s-t	        t        ddd	j                  ||z
               d      S t#        |j(                        d
dhk7  rt	        t        dd      d      S t+        t-        j,                               }	| j                  j.                  |	| j                  j.                  z   nd }
t1        d!i d|d|	d|d|
d|j2                  d|j                  d|j(                  d|j4                  d|j6                  d|j8                  d|j:                  d|j                  d|j<                  d|j>                  d|j@                  d|jB                  d|jD                  d|jF                  d|jH                  }	 | jJ                  jM                  |       d {    t	        |d       S 7 # t        $ r+}t	        t        dt        |            d      cY d }~S d }~ww xY w7 K# tN        $ r6}t	        t        |jP                  |jR                        d      cY d }~S d }~ww xY ww)"Ninvalid_client_metadata)r   r    i  )contentstatus_codenone     z Requested scopes are not valid: z, authorization_coderefresh_tokenz8grant_types must be authorization_code and refresh_token	client_idclient_id_issued_atclient_secretclient_secret_expires_atredirect_uristoken_endpoint_auth_methodgrant_typesresponse_typesclient_name
client_urilogo_uriscopecontactstos_uri
policy_urijwks_urijwkssoftware_idsoftware_version   r   )*jsonr   model_validater   r   r   r   r!   r   r6   secrets	token_hexr<   r%   default_scopesjoinvalid_scopessetsplitissubsetr7   inttimeclient_secret_expiry_secondsr   r5   r8   r9   r:   r;   r=   r>   r?   r@   rA   rB   rC   r$   register_clientr   r   r    )selfr&   bodyclient_metadatavalidation_errorr1   r3   requested_scopesrK   r2   r4   client_infoes                r   handlezRegistrationHandler.handle"   sc    	 'D1@@FO L	55?#--b1M  (T\\-H-H-T$'HHT\\-H-H$IO!"".4<<3L3L3X"?#8#8#>#>#@At||889L#,,\:+57*L99%5%DEF+H
 !$  **+0Do/VV'13&`    "$))+. ||88D  $,,"K"KK 	! 1 

 3
 (
 &>	
 *77
 (7'Q'Q
 (33
 +99
 (33
 '11
 %--
 "''
 %--
 $++
  '11!
" %--#
$ !%%%
& (33'
( -==)
,	--//<<< (MMY (  	'13&>?O&P   	J = ! 	'1STSfSfg 	s   M K% K"K% J M 2L LL !M "K% %	L. LLM LM L 	M'+MMM MM N)
r   r   r   r   r   r   r   r	   r
   rZ   r   r   r   r#   r#      s/    .sC}==&&VG V Vr   r#   ) rG   rP   dataclassesr   typingr   uuidr   pydanticr   r   r   starlette.requestsr	   starlette.responsesr
   mcp.server.auth.errorsr   mcp.server.auth.json_responser   mcp.server.auth.providerr   r   r   mcp.server.auth.settingsr   mcp.shared.authr   r   r   r   r#   r   r   r   <module>rf      sl      !   : : & ( ; > o o > K)$78 "	 "
 Z Z Zr   