mirror of
https://github.com/haiwen/seahub.git
synced 2025-08-31 22:54:11 +00:00
improve shibboleth login (#5295)
This commit is contained in:
@@ -154,7 +154,16 @@ def auth_complete(request):
|
|||||||
token = get_token_v2(
|
token = get_token_v2(
|
||||||
request, request.user.username, platform, device_id,
|
request, request.user.username, platform, device_id,
|
||||||
device_name, client_version, platform_version)
|
device_name, client_version, platform_version)
|
||||||
elif all(['shib_' + key not in request.GET for key in keys]):
|
elif all(['shib_' + key in request.session for key in keys]):
|
||||||
|
platform = request.session['shib_platform']
|
||||||
|
device_id = request.session['shib_device_id']
|
||||||
|
device_name = request.session['shib_device_name']
|
||||||
|
client_version = request.session['shib_client_version']
|
||||||
|
platform_version = request.session['shib_platform_version']
|
||||||
|
token = get_token_v2(
|
||||||
|
request, request.user.username, platform, device_id,
|
||||||
|
device_name, client_version, platform_version)
|
||||||
|
else:
|
||||||
token = get_token_v1(request.user.username)
|
token = get_token_v1(request.user.username)
|
||||||
|
|
||||||
resp = HttpResponseRedirect(reverse('libraries'))
|
resp = HttpResponseRedirect(reverse('libraries'))
|
||||||
|
@@ -229,6 +229,17 @@ def get_api_token(request, keys=None, key_prefix='shib_'):
|
|||||||
token = get_token_v2(request, request.user.username, platform,
|
token = get_token_v2(request, request.user.username, platform,
|
||||||
device_id, device_name, client_version,
|
device_id, device_name, client_version,
|
||||||
platform_version)
|
platform_version)
|
||||||
|
|
||||||
|
elif all([key in request.session for key in keys]):
|
||||||
|
platform = request.session['%splatform' % key_prefix]
|
||||||
|
device_id = request.session['%sdevice_id' % key_prefix]
|
||||||
|
device_name = request.session['%sdevice_name' % key_prefix]
|
||||||
|
client_version = request.session['%sclient_version' % key_prefix]
|
||||||
|
platform_version = request.session['%splatform_version' % key_prefix]
|
||||||
|
token = get_token_v2(
|
||||||
|
request, request.user.username, platform, device_id,
|
||||||
|
device_name, client_version, platform_version)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
token = get_token_v1(request.user.username)
|
token = get_token_v1(request.user.username)
|
||||||
|
|
||||||
|
@@ -86,6 +86,14 @@ def jwt_sso(request):
|
|||||||
|
|
||||||
def shib_login(request):
|
def shib_login(request):
|
||||||
# client platform args used to create api v2 token
|
# client platform args used to create api v2 token
|
||||||
|
keys = ('platform', 'device_id', 'device_name', 'client_version', 'platform_version')
|
||||||
|
if all(['shib_' + key in request.GET for key in keys]):
|
||||||
|
request.session['shib_platform'] = request.GET['shib_platform']
|
||||||
|
request.session['shib_device_id'] = request.GET['shib_device_id']
|
||||||
|
request.session['shib_device_name'] = request.GET['shib_device_name']
|
||||||
|
request.session['shib_client_version'] = request.GET['shib_client_version']
|
||||||
|
request.session['shib_platform_version'] = request.GET['shib_platform_version']
|
||||||
|
|
||||||
next_page = request.GET.get(REDIRECT_FIELD_NAME, '')
|
next_page = request.GET.get(REDIRECT_FIELD_NAME, '')
|
||||||
query_string = request.META.get('QUERY_STRING', '')
|
query_string = request.META.get('QUERY_STRING', '')
|
||||||
params = '?%s=%s&%s' % (REDIRECT_FIELD_NAME, urlquote(next_page), query_string)
|
params = '?%s=%s&%s' % (REDIRECT_FIELD_NAME, urlquote(next_page), query_string)
|
||||||
|
Reference in New Issue
Block a user