
    lKj                         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	 ddl
mZ  e j                  e      Z G d d	e	e      Z G d
 de      Zy)    N)jwt)	JoseError)import_any_key   )
TokenMixin)BearerTokenValidatorc                   *    e Zd Zd Zd Zd Zd Zd Zy)JWTBearerTokenc                 .    | d   |j                         k(  S )N	client_id)get_client_id)selfclients     q/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/authlib/oauth2/rfc7523/validator.pycheck_clientzJWTBearerToken.check_client   s    K F$8$8$:::    c                 $    | j                  d      S )Nscope)getr   s    r   	get_scopezJWTBearerToken.get_scope   s    xx  r   c                     | d   | d   z
  S )Nexpiat r   s    r   get_expires_inzJWTBearerToken.get_expires_in   s    E{T%[((r   c                 6    | d   t        j                          k  S )Nr   )timer   s    r   
is_expiredzJWTBearerToken.is_expired   s    E{TYY[((r   c                      y)NFr   r   s    r   
is_revokedzJWTBearerToken.is_revoked   s    r   N)__name__
__module____qualname__r   r   r   r   r!   r   r   r   r
   r
      s    ;!))r   r
   c                   4     e Zd ZdZeZd fd	ZdefdZ xZ	S )JWTBearerTokenValidatorbearerc                     t        |   |fi | t        |      | _        ddiddiddid}|rd|d|d<   || _        y )N	essentialT)r   r   
grant_type)r)   valueiss)super__init__r   
public_keyclaims_options)r   r/   issuerrealmextra_attributesr0   	__class__s         r   r.   z JWTBearerTokenValidator.__init__$   s]    3"23(4&%t,&-

 26$HN5!,r   token_stringc                    	 t        j                  || j                        }t        j                  dddi| j                  }	 |j                  |j                         t        |j                        S # t        $ r }t        j                  d|       Y d }~y d }~ww xY w# t        $ r }t        j                  d|       Y d }~y d }~ww xY w)NzAuthenticate token failed. %rleeway<   r   )r   decoder/   r   loggerdebugJWTClaimsRegistryr0   validateclaimsr
   )r   r5   tokenerrorclaims_requestss        r   authenticate_tokenz*JWTBearerTokenValidator.authenticate_token0   s    	JJ|T__=E
 //QrQT=P=PQ	$$U\\2
 ell++  	LL8%@	  	LL8%@	s/    A4 B  4	B=BB 	C	)CC	)NN)
r"   r#   r$   
TOKEN_TYPEr
   	token_clsr.   strrB   __classcell__)r4   s   @r   r&   r&       s    JI
-,s ,r   r&   )loggingr   joserfcr   joserfc.errorsr   authlib._joserfc_helpersr   rfc6749r   rfc6750r   	getLoggerr"   r:   dictr
   r&   r   r   r   <module>rO      sG       $ 3   *			8	$Z ",2 ,r   