From 5b3a8d4aed0f3f9a825f934f0752c68647d526fd Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Jul 09 2016 08:29:57 +0000 Subject: Fix naming collissions in OpenIDC token refresh Without this, refreshing a token would fail because token would become a string, overwriting the dict that was there before, while we still need to use parts of the dict later on. Signed-off-by: Patrick Uiterwijk Reviewed-by: Pierre-Yves Chibon --- diff --git a/ipsilon/providers/openidc/store.py b/ipsilon/providers/openidc/store.py index 491a271..7617bc2 100644 --- a/ipsilon/providers/openidc/store.py +++ b/ipsilon/providers/openidc/store.py @@ -105,6 +105,8 @@ class OpenIDCStore(Store): self.save_unique_data('token', {token_id: token}) + token['token_id'] = token_id + def refreshToken(self, refresh_token, client_id): token = self.lookupToken(refresh_token, 'Refresh', True) @@ -139,11 +141,11 @@ class OpenIDCStore(Store): self.update_token(token) - token = '%s_%s' % (token['token_id'], token_security_check) + new_token = '%s_%s' % (token['token_id'], token_security_check) refresh_token = 'R_%s_%s' % (token['token_id'], refresh_security_check) return { - 'access_token': token, + 'access_token': new_token, 'refresh_token': refresh_token, 'expires_in': expires_in }