Merge pull request #11361 from jumpserver/pr@dev@perf_login_csrf

perf: 修改 csrf 登录时判断
pull/11372/head
老广 2023-08-18 20:44:25 +08:00 committed by GitHub
commit 3c497aa81e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 4 deletions

View File

@ -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

View File

@ -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)