mirror of https://github.com/jumpserver/jumpserver
perf: 添加配置项 LOGIN_REDIRECT_TO_BACKEND
parent
e44c8ae940
commit
c21217d50c
|
@ -46,24 +46,39 @@ class UserLoginView(mixins.AuthMixin, FormView):
|
||||||
return None
|
return None
|
||||||
next_url = request.GET.get('next') or '/'
|
next_url = request.GET.get('next') or '/'
|
||||||
auth_type = ''
|
auth_type = ''
|
||||||
auth_url = ''
|
|
||||||
if settings.AUTH_OPENID:
|
if settings.AUTH_OPENID:
|
||||||
auth_type = 'OIDC'
|
auth_type = 'OIDC'
|
||||||
auth_url = reverse(settings.AUTH_OPENID_AUTH_LOGIN_URL_NAME) + f'?next={next_url}'
|
openid_auth_url = reverse(settings.AUTH_OPENID_AUTH_LOGIN_URL_NAME) + f'?next={next_url}'
|
||||||
elif settings.AUTH_CAS:
|
else:
|
||||||
|
openid_auth_url = None
|
||||||
|
|
||||||
|
if settings.AUTH_CAS:
|
||||||
auth_type = 'CAS'
|
auth_type = 'CAS'
|
||||||
auth_url = reverse(settings.CAS_LOGIN_URL_NAME) + f'?next={next_url}'
|
cas_auth_url = reverse(settings.CAS_LOGIN_URL_NAME) + f'?next={next_url}'
|
||||||
if not auth_url:
|
else:
|
||||||
|
cas_auth_url = None
|
||||||
|
|
||||||
|
if not any([openid_auth_url, cas_auth_url]):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if settings.LOGIN_REDIRECT_FLASH_MESSAGE_INTERVAL == 0:
|
if settings.LOGIN_REDIRECT_TO_BACKEND == 'OPENID' and openid_auth_url:
|
||||||
|
auth_url = openid_auth_url
|
||||||
|
|
||||||
|
elif settings.LOGIN_REDIRECT_TO_BACKEND == 'CAS' and cas_auth_url:
|
||||||
|
auth_url = cas_auth_url
|
||||||
|
|
||||||
|
else:
|
||||||
|
auth_url = openid_auth_url or cas_auth_url
|
||||||
|
|
||||||
|
if settings.LOGIN_REDIRECT_TO_BACKEND:
|
||||||
redirect_url = auth_url
|
redirect_url = auth_url
|
||||||
else:
|
else:
|
||||||
message_data = {
|
message_data = {
|
||||||
'title': _('Redirecting'),
|
'title': _('Redirecting'),
|
||||||
'message': _("Redirecting to {} authentication").format(auth_type),
|
'message': _("Redirecting to {} authentication").format(auth_type),
|
||||||
'redirect_url': auth_url,
|
'redirect_url': auth_url,
|
||||||
'interval': settings.LOGIN_REDIRECT_FLASH_MESSAGE_INTERVAL,
|
'interval': 3,
|
||||||
'has_cancel': True,
|
'has_cancel': True,
|
||||||
'cancel_url': reverse('authentication:login') + '?admin=1'
|
'cancel_url': reverse('authentication:login') + '?admin=1'
|
||||||
}
|
}
|
||||||
|
|
|
@ -306,7 +306,7 @@ class Config(dict):
|
||||||
'SESSION_EXPIRE_AT_BROWSER_CLOSE_FORCE': False,
|
'SESSION_EXPIRE_AT_BROWSER_CLOSE_FORCE': False,
|
||||||
'FORGOT_PASSWORD_URL': '',
|
'FORGOT_PASSWORD_URL': '',
|
||||||
'HEALTH_CHECK_TOKEN': '',
|
'HEALTH_CHECK_TOKEN': '',
|
||||||
'LOGIN_REDIRECT_FLASH_MESSAGE_INTERVAL': 3,
|
'LOGIN_REDIRECT_TO_BACKEND': None, # 'OPENID / CAS
|
||||||
|
|
||||||
'TERMINAL_RDP_ADDR': ''
|
'TERMINAL_RDP_ADDR': ''
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,4 +129,4 @@ HEALTH_CHECK_TOKEN = CONFIG.HEALTH_CHECK_TOKEN
|
||||||
TERMINAL_RDP_ADDR = CONFIG.TERMINAL_RDP_ADDR
|
TERMINAL_RDP_ADDR = CONFIG.TERMINAL_RDP_ADDR
|
||||||
SECURITY_LUNA_REMEMBER_AUTH = CONFIG.SECURITY_LUNA_REMEMBER_AUTH
|
SECURITY_LUNA_REMEMBER_AUTH = CONFIG.SECURITY_LUNA_REMEMBER_AUTH
|
||||||
|
|
||||||
LOGIN_REDIRECT_FLASH_MESSAGE_INTERVAL = CONFIG.LOGIN_REDIRECT_FLASH_MESSAGE_INTERVAL
|
LOGIN_REDIRECT_TO_BACKEND = CONFIG.LOGIN_REDIRECT_TO_BACKEND
|
||||||
|
|
Loading…
Reference in New Issue