# coding=utf-8 """ @project: maxkb @Author:虎 @file: static_headers_middleware.py @date:2024/3/13 18:26 @desc: """ from django.http import HttpResponse from django.utils.deprecation import MiddlewareMixin from common.auth import TokenDetails, handles from maxkb.const import CONFIG content = """ Document """.replace("/api/user/profile", CONFIG.get_admin_path() + '/api/user/profile').replace('/admin/login', CONFIG.get_admin_path() + '/login') class DocHeadersMiddleware(MiddlewareMixin): def process_response(self, request, response): if request.path.startswith(CONFIG.get_admin_path() + '/api-doc/') or request.path.startswith( CONFIG.get_chat_path() + '/api-doc/'): auth = request.COOKIES.get('Authorization') if auth is None: return HttpResponse(content) else: if not auth.startswith("Bearer "): return HttpResponse(content) try: token = auth[7:] token_details = TokenDetails(token) for handle in handles: if handle.support(request, token, token_details.get_token_details): handle.handle(request, token, token_details.get_token_details) return response return HttpResponse(content) except Exception as e: return HttpResponse(content) return response