msp: pass error from MSP to authorization requester

This commit is contained in:
Benjamin Dauvergne 2014-04-29 15:50:58 +02:00
parent ecfe4a59fa
commit 481ff86789
1 changed files with 15 additions and 1 deletions

View File

@ -257,7 +257,21 @@ class AuthorizeView(View):
url = urlparse.urlunparse(parsed)
return HttpResponseRedirect(url)
if 'error' in GET:
assert False
assert 'state' in GET
state = GET['state']
saved = cache.get('msp-state-' + state)
old_state = saved['state']
redirect_uri = saved['redirect_uri']
parsed = urlparse.urlparse(redirect_uri)
params = urlparse.parse_qs(parsed.query)
params.update(dict(GET))
if old_state:
params['state'] = old_state
else:
del params['state']
parsed = parsed._replace(query=urllib.urlencode(params, True))
url = urlparse.urlunparse(parsed)
return HttpResponseRedirect(url)
else:
assert 'redirect_uri' in GET
assert 'scope' in GET