Fixing an issue with futures, unicode and b64 not being able to handle the unicode values
This commit is contained in:
parent
0f0d11a828
commit
d62f57eab3
|
@ -8,11 +8,12 @@
|
||||||
.. moduleauthor:: Kevin Glisson <kglisson@netflix.com>
|
.. moduleauthor:: Kevin Glisson <kglisson@netflix.com>
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
from builtins import bytes
|
||||||
import jwt
|
import jwt
|
||||||
import json
|
import json
|
||||||
import base64
|
import base64
|
||||||
import binascii
|
import binascii
|
||||||
from builtins import str
|
|
||||||
|
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
@ -34,19 +35,16 @@ from lemur.auth.permissions import CertificateCreatorNeed, \
|
||||||
|
|
||||||
|
|
||||||
def base64url_decode(data):
|
def base64url_decode(data):
|
||||||
if isinstance(data, str):
|
|
||||||
data = str(data)
|
|
||||||
|
|
||||||
rem = len(data) % 4
|
rem = len(data) % 4
|
||||||
|
|
||||||
if rem > 0:
|
if rem > 0:
|
||||||
data += b'=' * (4 - rem)
|
data += '=' * (4 - rem)
|
||||||
|
|
||||||
return base64.urlsafe_b64decode(data)
|
return base64.urlsafe_b64decode(bytes(data.encode('latin-1')))
|
||||||
|
|
||||||
|
|
||||||
def base64url_encode(data):
|
def base64url_encode(data):
|
||||||
return base64.urlsafe_b64encode(data).replace(b'=', b'')
|
return base64.urlsafe_b64encode(data).replace('=', '')
|
||||||
|
|
||||||
|
|
||||||
def get_rsa_public_key(n, e):
|
def get_rsa_public_key(n, e):
|
||||||
|
@ -141,9 +139,11 @@ def fetch_token_header(token):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return json.loads(base64url_decode(header_segment))
|
return json.loads(base64url_decode(header_segment))
|
||||||
except TypeError:
|
except TypeError as e:
|
||||||
|
current_app.logger.exception(e)
|
||||||
raise jwt.DecodeError('Invalid header padding')
|
raise jwt.DecodeError('Invalid header padding')
|
||||||
except binascii.Error:
|
except binascii.Error as e:
|
||||||
|
current_app.logger.exception(e)
|
||||||
raise jwt.DecodeError('Invalid header padding')
|
raise jwt.DecodeError('Invalid header padding')
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue