o
    ©D®fJ  ã                   @   s,   d dl mZ d dlmZ G dd„ deƒZdS )é    )ÚInvalidClaimError)Ú	JWTClaimsc                       sr   e Zd Zejg d¢ Z‡ fdd„Zdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Z‡  ZS )ÚJWTAccessTokenClaims)Ú	client_idÚ	auth_timeÚacrÚamrÚscopeÚgroupsÚrolesÚentitlementsc                    s^   |   ¡  tƒ jdi |¤Ž |  ¡  |  ¡  |  ¡  |  ¡  |  ¡  |  ¡  |  	¡  |  
¡  d S )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__r   úV/home/ubuntu/webapp/venv/lib/python3.10/site-packages/authlib/oauth2/rfc9068/claims.pyr      s   zJWTAccessTokenClaims.validatec                 C   s   | j d  ¡ dvrtdƒ‚d S )NÚtyp)zat+jwtzapplication/at+jwt)ÚheaderÚlowerr   ©r   r   r   r   r      s   ÿz!JWTAccessTokenClaims.validate_typc                 C   ó
   |   d¡S )Nr   ©Ú_validate_claim_valuer!   r   r   r   r   $   ó   
z'JWTAccessTokenClaims.validate_client_idc                 C   s,   |   d¡}|rt|ttfƒstdƒ‚d S d S )Nr   )ÚgetÚ
isinstanceÚintÚfloatr   )r   r   r   r   r   r   '   ó   
ÿz'JWTAccessTokenClaims.validate_auth_timec                 C   r"   )Nr   r#   r!   r   r   r   r   ,   r%   z!JWTAccessTokenClaims.validate_acrc                 C   s,   |   d¡}|rt| d tƒstdƒ‚d S d S )Nr   )r&   r'   Úlistr   )r   r   r   r   r   r   /   r*   z!JWTAccessTokenClaims.validate_amrc                 C   r"   )Nr	   r#   r!   r   r   r   r   4   r%   z#JWTAccessTokenClaims.validate_scopec                 C   r"   )Nr
   r#   r!   r   r   r   r   7   r%   z$JWTAccessTokenClaims.validate_groupsc                 C   r"   )Nr   r#   r!   r   r   r   r   :   r%   z#JWTAccessTokenClaims.validate_rolesc                 C   r"   )Nr   r#   r!   r   r   r   r   =   r%   z*JWTAccessTokenClaims.validate_entitlements)Ú__name__Ú
__module__Ú__qualname__r   ÚREGISTERED_CLAIMSr   r   r   r   r   r   r   r   r   r   Ú__classcell__r   r   r   r   r      s    r   N)Úauthlib.jose.errorsr   Úauthlib.jose.rfc7519r   r   r   r   r   r   Ú<module>   s    