views: fix discovery URL building (#31581)

This commit is contained in:
Benjamin Dauvergne 2019-03-20 13:55:00 +01:00
parent d0e6f46f9b
commit ca6ce92781
2 changed files with 5 additions and 3 deletions

View File

@ -348,12 +348,14 @@ class LoginView(ProfileMixin, LogMixin, View):
return self.sso_failure(request, login, reason=idp_message, status_codes=status_codes)
def request_discovery_service(self, request, is_passive=False):
self_url = request.build_absolute_uri() + '&nodisco=1'
return_url = request.build_absolute_uri()
return_url += '&' if '?' in return_url else '?'
return_url += 'nodisco=1'
url = app_settings.DISCOVERY_SERVICE_URL
params = {
# prevent redirect loops with the discovery service
'entityID': request.build_absolute_uri(reverse('mellon_metadata')),
'return': self_url,
'return': return_url,
}
if is_passive:
params['isPassive'] = 'true'

View File

@ -147,7 +147,7 @@ def test_sp_initiated_login_discovery_service_passive(private_settings, client):
assert response['Location'].startswith('https://disco?')
assert params == {'isPassive': ['true'],
'entityID': ['http://testserver/metadata/'],
'return': ['http://testserver/login/?nodisco=1']}
'return': ['http://testserver/login/?passive=1&nodisco=1']}
def test_sp_initiated_login_discovery_service_nodisco(private_settings, client):