
    i6	                         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	 d dl
mZ d dlmZ d dlZd d	lmZmZ g d
ZdedefdZ G d de          ZdS )    )Request)JSONResponse)BaseHTTPMiddleware)Match)ResponseWrapper)HTTPException)settingsN)ExpiredSignatureErrorInvalidTokenError)z/health-checkz/streamz/save/conversationz/rate/conversationtokenreturnc                    K   	 t          j        | t          j        t          j        g          }|S # t
          $ r t          dd          t          $ r t          dd          w xY w)N)
algorithms  zToken has expiredstatus_codedetailzInvalid token)jwtdecoder	   JWT_SECRET_KEYJWT_ALGORITHMr
   r   r   )r   payloads     >/var/www/html/ls-ibe-bot-apis/app/middleware/authentication.pyverify_jwt_tokenr      s      
E*UH$;I_H`aaa  I I I4GHHHH E E EODDDDEs	   -2 6A(c                       e Zd ZdefdZdS )AuthenticationMiddlewarerequestc           	        K   	 d}|j         j        j        D ]3}|                    |j                  \  }}|t
          j        k    rd} n4|r|j        dk    r ||           d {V S |j        j	        
                    dd          }|t          v r ||           d {V S |j                            d          st          dd	          t          |j                            d                     d {V } ||           d {V S # t          $ r@}	t!          |	j        t%          d|	j        d 
          j        |	j                  cY d }	~	S d }	~	ww xY w)NFTOPTIONSz/ibe-bot-apis Authorizationr   Unauthorizedr   )statusmessagedata)r   contentheaders)approuterroutesmatchesscoper   NONEmethodurlpathreplacePUBLIC_ROUTESr'   getr   r   r   r   r   r   __dict__)
selfr   	call_nextroute_existsroutematch_r0   user	exceptions
             r   dispatchz!AuthenticationMiddleware.dispatch#   s     %	 L +2   ==77qEJ&&#'LE '
   07>Y#>#>&Yw///////// ;#++OR@@D }$$&Yw///////// ?&&77 L#NKKKK)'/*=*=o*N*NOOOOOOOOD"7+++++++++ 		 		 		%1' %,   !)        		s+   A$D )9D #A(D 
E5EEEN)__name__
__module____qualname__r   r=        r   r   r   !   s/        'g ' ' ' ' ' 'rB   r   )fastapir   fastapi.responsesr   starlette.middleware.baser   starlette.routingr   app.schemasr   app.exceptionsr   app.configs.settingsr	   r   r
   r   r2   strdictr   r   rA   rB   r   <module>rL      s         * * * * * * 8 8 8 8 8 8 # # # # # # ' ' ' ' ' ' ( ( ( ( ( ( ) ) ) ) ) ) 



 8 8 8 8 8 8 8 8  E# E$ E E E E) ) ) ) )1 ) ) ) ) )rB   