From 81663f0f13fa1960e75c4243c8dbba0d20bfce1d Mon Sep 17 00:00:00 2001 From: Luz Cazares Date: Fri, 20 Oct 2017 02:01:35 +0000 Subject: [PATCH] Fix authentication via openid when py35 When refstack is installed using py35, a str/ binary issue is raised right after authentication with openid credentials. Current fix ammend refstack openid verification process to support both py35 and py27 Change-Id: Idd20fc338994282978d4c2a4efafe3e77ba71003 --- refstack/api/utils.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/refstack/api/utils.py b/refstack/api/utils.py index 2df719a1..4d608c14 100644 --- a/refstack/api/utils.py +++ b/refstack/api/utils.py @@ -320,9 +320,14 @@ def verify_openid_request(request): CONF.osid.openstack_openid_endpoint, data=verify_params, verify=not CONF.api.app_dev_mode ) - verify_data_tokens = verify_response.content.split() - verify_dict = dict((token.split(":")[0], token.split(":")[1]) - for token in verify_data_tokens) + + vrc = verify_response.content.decode('utf-8') if isinstance( + verify_response.content, bytes) else verify_response.content + + verify_data_tokens = vrc.split() + verify_dict = dict((token.split(':')[0], token.split(':')[1]) + for token in verify_data_tokens + if len(token.split(':')) > 1) if (verify_response.status_code / 100 != 2 or verify_dict['is_valid'] != 'true'):