diff --git a/apps/authentication/views/login.py b/apps/authentication/views/login.py index 77f5ee14e..6405ad771 100644 --- a/apps/authentication/views/login.py +++ b/apps/authentication/views/login.py @@ -140,13 +140,16 @@ class UserLoginContextMixin: if not self.request.GET.get('csrf_failure'): return context + http_origin = self.request.META.get('HTTP_ORIGIN') http_referer = self.request.META.get('HTTP_REFERER') - if not http_referer: + http_origin = http_origin or http_referer + + if not http_origin: return context try: - referer = urlparse(http_referer) - context['error_origin'] = str(referer.netloc) + origin = urlparse(http_origin) + context['error_origin'] = str(origin.netloc) except ValueError: pass return context diff --git a/apps/jumpserver/views/other.py b/apps/jumpserver/views/other.py index 0336c0f2a..6a05acaa5 100644 --- a/apps/jumpserver/views/other.py +++ b/apps/jumpserver/views/other.py @@ -92,5 +92,5 @@ class ResourceDownload(TemplateView): def csrf_failure(request, reason=""): from django.shortcuts import reverse - login_url = reverse('authentication:login') + '?csrf_failure=1' + login_url = reverse('authentication:login') + '?csrf_failure=1&admin=1' return redirect(login_url)