
    ~h                     2    d dl mZ d dlmZ  G d de      Zy)    )InvalidClaimError)	JWTClaimsc                   v     e Zd Zej                  g dz   Z fdZd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Z xZS )JWTAccessTokenClaims)	client_id	auth_timeacramrscopegroupsrolesentitlementsc                 D   | j                          t        |   di | | j                          | j	                          | j                          | j                          | j                          | j                          | j                          | j                          y )N )validate_typsupervalidatevalidate_client_idvalidate_auth_timevalidate_acrvalidate_amrvalidate_scopevalidate_groupsvalidate_rolesvalidate_entitlements)selfkwargs	__class__s     Y/opt/mcp/mcp-sentiment/venv/lib/python3.12/site-packages/authlib/oauth2/rfc9068/claims.pyr   zJWTAccessTokenClaims.validate   s    "6"!!""$    c                 z    | j                   j                  d      }|r|j                         dvrt        d      y y )Ntyp)zat+jwtzapplication/at+jwt)headergetlowerr   )r   r"   s     r   r   z!JWTAccessTokenClaims.validate_typ   s:     kkooe$399;&FF#E** G3r    c                 $    | j                  d      S )Nr   _validate_claim_valuer   s    r   r   z'JWTAccessTokenClaims.validate_client_id&   s    ))+66r    c                 n    | j                  d      }|r"t        |t        t        f      st	        d      y y )Nr   )r$   
isinstanceintfloatr   )r   r   s     r   r   z'JWTAccessTokenClaims.validate_auth_time)   s3    HH[)	Z	C<@#K00 A9r    c                 $    | j                  d      S )Nr	   r'   r)   s    r   r   z!JWTAccessTokenClaims.validate_acr.   s    ))%00r    c                 h    | j                  d      }|rt        | d   t              st        d      y y )Nr
   )r$   r+   listr   )r   r
   s     r   r   z!JWTAccessTokenClaims.validate_amr1   s1    hhuoz$u+t4#E** 53r    c                 $    | j                  d      S )Nr   r'   r)   s    r   r   z#JWTAccessTokenClaims.validate_scope6       ))'22r    c                 $    | j                  d      S )Nr   r'   r)   s    r   r   z$JWTAccessTokenClaims.validate_groups9   s    ))(33r    c                 $    | j                  d      S )Nr   r'   r)   s    r   r   z#JWTAccessTokenClaims.validate_roles<   r2   r    c                 $    | j                  d      S )Nr   r'   r)   s    r   r   z*JWTAccessTokenClaims.validate_entitlements?   s    )).99r    )__name__
__module____qualname__r   REGISTERED_CLAIMSr   r   r   r   r   r   r   r   r   r   __classcell__)r   s   @r   r   r      sK    !33 	7 	%+71
1+
343:r    r   N)authlib.jose.errorsr   authlib.jose.rfc7519r   r   r   r    r   <module>r=      s    1 *;:9 ;:r    