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
 |