Python Django : ssl.SSLEOFError: EOF произошла в нарушение протокола (_ssl.c:2427)

Traceback (most recent call last):
  File "C:\Program Files\Python311\Lib\wsgiref\handlers.py", line 138, in run
    self.finish_response()
  File "C:\Users\ADMİN\AppData\Roaming\Python\Python311\site-packages\django\core\servers\basehttp.py", line 173, in finish_response
    super().finish_response()
  File "C:\Program Files\Python311\Lib\wsgiref\handlers.py", line 184, in finish_response
    self.write(data)
  File "C:\Program Files\Python311\Lib\wsgiref\handlers.py", line 292, in write
    self._write(data)
  File "C:\Program Files\Python311\Lib\wsgiref\handlers.py", line 466, in _write
    result = self.stdout.write(data)
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\socketserver.py", line 834, in write
    self._sock.sendall(b)
  File "C:\Program Files\Python311\Lib\ssl.py", line 1274, in sendall
    v = self.send(byte_view[count:])
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\ssl.py", line 1243, in send
    return self._sslobj.write(data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:2427)

Привет друзья

Проблема, с которой я столкнулся, заключается в том, что ошибка SSL Error в слое python перехватывается и обрабатывается в слое Django. Вот в чем проблема: Мы разрабатываем проект в среде Python Django. Мы используем openssl для архитектуры runsslserver. Мы разработали продвинутую архитектуру логирования для этой ситуации. Однако, несмотря на приоритет middelware, мы не смогли поймать и залогировать эту ssl-ошибку. Заранее благодарю всех, у кого есть идеи или предложения по этому вопросу.

class SSLErrorMiddleware(MiddlewareMixin):
    def __init__(self, get_response):
        self.get_response = get_response
        # İstek başladığında ve bittiğinde sinyalleri bağla
        request_started.connect(self.log_request_start)
        request_finished.connect(self.log_request_finish)

    def __call__(self, request):
        # Request processing
        try:
            response = self.get_response(request)
        except ssl.SSLEOFError as e:
            error_details = traceback.format_exc()
            logger.error(f"SSL EOF Error at {request.path}: {str(e)} | Traceback: {error_details}")
            return HttpResponse("SSL connection error occurred.", status=503)
        except Exception as e:
            logger.error(f"Unexpected error at {request.path}: {str(e)} | Traceback: {traceback.format_exc()}")
            raise e
        return response

    @staticmethod
    @receiver(request_started)
    def log_request_start(sender, **kwargs):
        logger.debug(f"Request started signal received.")

    @staticmethod
    @receiver(request_finished)
    def log_request_finish(sender, **kwargs):
        logger.debug(f"Request finished signal received.")

    def get_error_details(self):
        stack_trace = traceback.format_exc()
        return f"Traceback: {stack_trace}"
Вернуться на верх