From f3d9f4c4467c6a6076946d02dbbaa7e7c9963583 Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Tue, 29 Jul 2025 16:34:20 +0800 Subject: [PATCH] fix: Failed to switch languages --- apps/jumpserver/middleware.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/jumpserver/middleware.py b/apps/jumpserver/middleware.py index 9937bf86a..5a191ad4b 100644 --- a/apps/jumpserver/middleware.py +++ b/apps/jumpserver/middleware.py @@ -14,6 +14,7 @@ from django.shortcuts import HttpResponse from django.shortcuts import redirect from django.urls import reverse from django.utils import timezone +from django.utils.http import is_same_domain from .utils import set_current_request @@ -162,9 +163,9 @@ class SafeRedirectMiddleware: target_host = parsed.netloc if target_host in [*settings.ALLOWED_HOSTS]: return response - origin = f"{request.scheme}://{request.get_host()}" - target_origin = f"{parsed.scheme}://{target_host}" - if not target_origin.startswith(origin): + origin = request.get_host() + target_origin = target_host + if not is_same_domain(origin, target_origin): safe_redirect_url = '%s?%s' % (reverse('redirect-confirm'), f'next={quote(location)}') return redirect(safe_redirect_url) return response