
    !9if	                     J    d Z ddlmZ ddlmZ ddlZddlmZ  G d de      Zy)z
reCAPTCHA v3 middleware for protecting Django admin login.
This middleware intercepts admin login POST requests and validates the reCAPTCHA token.
    )settings)HttpResponseForbiddenN)MiddlewareMixinc                       e Zd ZdZdZd Zy)RecaptchaV3AdminMiddlewarez
    Middleware that protects the Django admin login with reCAPTCHA v3.
    Validates reCAPTCHA tokens on admin login POST requests.
    z/admin/login/c           	      F   |j                   dk7  s%|j                  j                  | j                        sy|j                  j                  dd      }|st        d      S 	 t        j                  dt        j                  |dt        t        dd	      
      }|j                         }|j                  d      st        d      S |j                  dd      }t        t        dd      }||k  rt        d      S y# t        j                  $ r}t        d      cY d}~S d}~ww xY w)zS
        Intercept admin login POST requests and validate reCAPTCHA token.
        POSTNzg-recaptcha-response z8reCAPTCHA validation required. Please enable JavaScript.z/https://www.google.com/recaptcha/api/siteverify)secretresponse RECAPTCHA_VERIFY_REQUEST_TIMEOUT
   )datatimeoutsuccessz0reCAPTCHA verification failed. Please try again.scorer   RECAPTCHA_SCORE_THRESHOLDg      ?z/Suspected bot activity detected. Access denied.z/reCAPTCHA verification error. Please try again.)methodpath
startswithADMIN_LOGIN_URLr	   getr   requestspostr   RECAPTCHA_PRIVATE_KEYgetattrjsonRequestException)selfrequestrecaptcha_tokenr   resultr   	thresholdes           2/var/www/apihucms/apihucms/middleware/recaptcha.pyprocess_requestz*RecaptchaV3AdminMiddleware.process_request   s   
 >>V#7<<+B+B4CWCW+X ",,**+A2F()cdd	\}}A&<< /  *LbQH ]]_F ::i(,-_`` JJw*E*EsKIy ,/^`` (( 	\()Z[[	\s%    A#C8 2C8 8D 
DD D N)__name__
__module____qualname____doc__r   r&        r%   r   r      s    
 &O*\r,   r   )	r*   django.confr   django.httpr   r   django.utils.deprecationr   r   r+   r,   r%   <module>r0      s&    ! -  42\ 2\r,   