Skip to content

Commit f7028cf

Browse files
author
Roland Hedberg
committed
Merge pull request #50 from rebeckag/b2s_conv_fix
Raise exception if item can't be converted to avoid silently signing …
2 parents 5f37068 + d2cb769 commit f7028cf

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/jwkest/jwt.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@ def split_token(token):
1717
def b2s_conv(item):
1818
if isinstance(item, bytes):
1919
return item.decode("utf-8")
20-
elif isinstance(item, (six.string_types, int, bool)):
20+
elif item is None or isinstance(item, (six.string_types, int, bool)):
2121
return item
2222
elif isinstance(item, list):
2323
return [b2s_conv(i) for i in item]
2424
elif isinstance(item, dict):
2525
return dict([(k, b2s_conv(v)) for k, v in item.items()])
2626

27+
raise ValueError("Can't convert {}.".format(repr(item)))
28+
2729

2830
def b64encode_item(item):
2931
if isinstance(item, bytes):

tests/test_1_jwt.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import json
2-
from jwkest.jwt import JWT
2+
3+
import pytest
4+
5+
from jwkest.jwt import JWT, b2s_conv
36

47
__author__ = 'roland'
58

@@ -44,6 +47,10 @@ def test_unpack_str():
4447
assert _jwt2
4548
out_payload = _jwt2.payload()
4649

50+
def test_b2s_conv_raise_exception_on_bad_value():
51+
with pytest.raises(ValueError):
52+
b2s_conv(object())
53+
4754

4855
if __name__ == "__main__":
4956
test_unpack_str()

0 commit comments

Comments
 (0)