
    )`i)                         d dl mZ d dlmZ d dlmZmZ d dl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 d d
lmZmZmZ  G d de          Z G d de          Ze G d d                      ZdS )    )	dataclass)partial)AnyLiteral)	BaseModelValidationError)Request)Response)stringify_pydantic_error)PydanticJSONResponse)AuthenticationErrorClientAuthenticator)AccessToken OAuthAuthorizationServerProviderRefreshTokenc                   X    e Zd ZU dZeed<   dZed         dz  ed<   eed<   edz  ed<   dS )RevocationRequestzI
    # See https://datatracker.ietf.org/doc/html/rfc7009#section-2.1
    tokenN)access_tokenrefresh_tokentoken_type_hint	client_idclient_secret)__name__
__module____qualname____doc__str__annotations__r   r        s/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/mcp/server/auth/handlers/revoke.pyr   r      s[           JJJGKOW<=DKKKNNN:r!   r   c                   :    e Zd ZU ed         ed<   dZedz  ed<   dS )RevocationErrorResponse)invalid_requestunauthorized_clienterrorNerror_description)r   r   r   r   r   r(   r   r    r!   r"   r$   r$      s9         ;<<<<$(sTz(((((r!   r$   c                   F    e Zd ZU eeeef         ed<   eed<   dedefdZ	dS )RevocationHandlerproviderclient_authenticatorrequestreturnc           
        K   	 | j                             |           d{V }n<# t          $ r/}t          dt	          d|j                            cY d}~S d}~ww xY w	 |                                 d{V }t                              t          |                    }nD# t          $ r7}t          dt	          dt          |                              cY d}~S d}~ww xY w| j        j        t          | j        j        |          g}|j        dk    rt#          |          }d}|D ]} ||j                   d{V }| n|r0|j        |j        k    r | j                            |           d{V  t+          d	d
dd          S )zF
        Handler for the OAuth 2.0 Token Revocation endpoint.
        Ni  r&   )r'   r(   )status_codecontenti  r%   r      zno-storezno-cache)zCache-ControlPragma)r0   headers)r,   authenticate_requestr   r   r$   messageformr   model_validatedictr   r   r+   load_access_tokenr   load_refresh_tokenr   reversedr   r   revoke_tokenr
   )	selfr-   cliente	form_datarevocation_requestloadersr   loaders	            r"   handlezRevocationHandler.handle&   sL     		4II'RRRRRRRRFF" 	 	 	'//&'i          	
	%llnn,,,,,,I!2!A!A$y//!R!R 	 	 	'/+&>q&A&A          	 M+DM4f==
 -@@w''G37 	 	F &!3!9::::::::E  !  	4U_(888 -,,U333333333 !+$ 
 
 
 	
s9    % 
A$AAA"AB$ $
C%.,C C% C%N)
r   r   r   r   r   r   r   r	   r
   rE   r    r!   r"   r*   r*   !   s[         .sC}====----5
G 5
 5
 5
 5
 5
 5
 5
r!   r*   N)dataclassesr   	functoolsr   typingr   r   pydanticr   r   starlette.requestsr	   starlette.responsesr
   mcp.server.auth.errorsr   mcp.server.auth.json_responser   &mcp.server.auth.middleware.client_authr   r   mcp.server.auth.providerr   r   r   r   r$   r*   r    r!   r"   <module>rP      sw   ! ! ! ! ! !               / / / / / / / / & & & & & & ( ( ( ( ( (      ? > > > > > [ [ [ [ [ [ [ [ ` ` ` ` ` ` ` ` ` `    	   ) ) ) ) )i ) ) )
 9
 9
 9
 9
 9
 9
 9
 9
 9
 9
r!   