mirror of https://github.com/jumpserver/jumpserver
33 lines
1.0 KiB
Python
33 lines
1.0 KiB
Python
|
from django_cas_ng import utils
|
||
|
from django_cas_ng.utils import (
|
||
|
django_settings, get_protocol,
|
||
|
urllib_parse, REDIRECT_FIELD_NAME, get_redirect_url
|
||
|
)
|
||
|
|
||
|
|
||
|
def get_service_url(request, redirect_to=None):
|
||
|
"""
|
||
|
重写 get_service url 方法, CAS_ROOT_PROXIED_AS 为空时, 支持跳转回当前访问的域名地址
|
||
|
"""
|
||
|
"""Generates application django service URL for CAS"""
|
||
|
if getattr(django_settings, 'CAS_ROOT_PROXIED_AS', None):
|
||
|
service = django_settings.CAS_ROOT_PROXIED_AS + request.path
|
||
|
else:
|
||
|
protocol = get_protocol(request)
|
||
|
host = request.get_host()
|
||
|
service = urllib_parse.urlunparse(
|
||
|
(protocol, host, request.path, '', '', ''),
|
||
|
)
|
||
|
if not django_settings.CAS_STORE_NEXT:
|
||
|
if '?' in service:
|
||
|
service += '&'
|
||
|
else:
|
||
|
service += '?'
|
||
|
service += urllib_parse.urlencode({
|
||
|
REDIRECT_FIELD_NAME: redirect_to or get_redirect_url(request)
|
||
|
})
|
||
|
return service
|
||
|
|
||
|
|
||
|
utils.get_service_url = get_service_url
|