0001-views-fix-discovery-URL-building-31581.patch
mellon/views.py | ||
---|---|---|
348 | 348 |
return self.sso_failure(request, login, reason=idp_message, status_codes=status_codes) |
349 | 349 | |
350 | 350 |
def request_discovery_service(self, request, is_passive=False): |
351 |
self_url = request.build_absolute_uri() + '&nodisco=1' |
|
351 |
return_url = request.build_absolute_uri() |
|
352 |
return_url += '&' if '?' in return_url else '?' |
|
353 |
return_url += 'nodisco=1' |
|
352 | 354 |
url = app_settings.DISCOVERY_SERVICE_URL |
353 | 355 |
params = { |
354 | 356 |
# prevent redirect loops with the discovery service |
355 | 357 |
'entityID': request.build_absolute_uri(reverse('mellon_metadata')), |
356 |
'return': self_url,
|
|
358 |
'return': return_url,
|
|
357 | 359 |
} |
358 | 360 |
if is_passive: |
359 | 361 |
params['isPassive'] = 'true' |
tests/test_views.py | ||
---|---|---|
147 | 147 |
assert response['Location'].startswith('https://disco?') |
148 | 148 |
assert params == {'isPassive': ['true'], |
149 | 149 |
'entityID': ['http://testserver/metadata/'], |
150 |
'return': ['http://testserver/login/?nodisco=1']} |
|
150 |
'return': ['http://testserver/login/?passive=1&nodisco=1']}
|
|
151 | 151 | |
152 | 152 | |
153 | 153 |
def test_sp_initiated_login_discovery_service_nodisco(private_settings, client): |
154 |
- |