Skip to content

Commit b7c5d65

Browse files
Merge pull request #84 from adorton-adobe/jwt-fix
jwt fix and pin dependencies
2 parents 4ce79c5 + 02aae0c commit b7c5d65

File tree

6 files changed

+59
-6
lines changed

6 files changed

+59
-6
lines changed

.github/workflows/python-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
strategy:
1717
matrix:
18-
python-version: [3.5, 3.6, 3.7, 3.8]
18+
python-version: [3.6, 3.7, 3.8, 3.9]
1919

2020
steps:
2121
- uses: actions/checkout@v2

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@
5252
packages=find_packages(),
5353
install_requires=[
5454
'requests>=2.4.2',
55-
'cryptography',
56-
'PyJWT',
55+
'cryptography==3.3.1',
56+
'PyJWT==2.0.1',
5757
'six',
5858
'enum34;python_version<"3.4"',
5959
],

tests/fixture/certificate_pub.crt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDXDCCAkSgAwIBAgIUWJ3RCA9FPvq48sj2pHh1eOP/NsEwDQYJKoZIhvcNAQEL
3+
BQAwaDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlVUMQ0wCwYDVQQHDARMZWhpMQ0w
4+
CwYDVQQKDARUZXN0MQ0wCwYDVQQDDARUZXN0MR8wHQYJKoZIhvcNAQkBFhB0ZXN0
5+
QGV4YW1wbGUuY29tMB4XDTIxMDEyNjEzMTU0OFoXDTMxMDEyODEzMTUyM1owaDEL
6+
MAkGA1UEBhMCVVMxCzAJBgNVBAgMAlVUMQ0wCwYDVQQHDARMZWhpMQ0wCwYDVQQK
7+
DARUZXN0MQ0wCwYDVQQDDARUZXN0MR8wHQYJKoZIhvcNAQkBFhB0ZXN0QGV4YW1w
8+
bGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu6Nu0lWkJ9ww
9+
XYaqFbnT+eG4/1048iz8Vq2FJNFTDLodzCF+Lbqe6LVYj+hUnPGXtsUninCrTg9t
10+
oYx6vSep8lXgxLCCzfz9VxC9XQiR9b+Gbu7999RNxJnX9rppQP5oyrCizAWqMDmu
11+
hUZXcIQoZb2/PaSwSahnSJu/kPJ+uFbB+/Ty/vknprMfL20VN8NLTuCknk2OJGRa
12+
nuz1jgUcCXpa/p8DKIhXACQ/GjcBumvk6PsI3N57YYmzEITKyWn2gS5UsMMoGq4o
13+
q5rekTcqfZ8Hp5v4NC9kRVdH0VCg8NChClbjXi8kByAky7QJtflsxBCEz2nv/OR1
14+
mqfg1foJowIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCFB7pSvDpU8M+I/Z3qb5Nb
15+
WxIYhlVhW4wt0OozxqriGV2cEfzJSsZFSs1UBqWjv6zux5r2PU8jBgGKSeFxHQjh
16+
XSjtQS/Z5DvTilc1Wb1oyFm7h45kPHBygfu3GMa60FlJMDjH+bH/gWhh0XRlMIAR
17+
pF9gZCexfNDYpzFyEkF7ArjEqjE5VFtWl5l7bEpwdvWZz4kEG8BXOpzYt1nrDMq7
18+
73S1b9nXRxL3larw/EZ8Xd0+SN3M/8IExM0QHAAKMmI72W0OpD2zaD21DsnOHKrl
19+
9iOAARUfFUR31Aq2qNKFpZtUQgpNC0VURBGkF5id4UerQslhr8bWQRCg/gJkDKBj
20+
-----END CERTIFICATE-----

tests/fixture/private.key

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEowIBAAKCAQEAu6Nu0lWkJ9wwXYaqFbnT+eG4/1048iz8Vq2FJNFTDLodzCF+
3+
Lbqe6LVYj+hUnPGXtsUninCrTg9toYx6vSep8lXgxLCCzfz9VxC9XQiR9b+Gbu79
4+
99RNxJnX9rppQP5oyrCizAWqMDmuhUZXcIQoZb2/PaSwSahnSJu/kPJ+uFbB+/Ty
5+
/vknprMfL20VN8NLTuCknk2OJGRanuz1jgUcCXpa/p8DKIhXACQ/GjcBumvk6PsI
6+
3N57YYmzEITKyWn2gS5UsMMoGq4oq5rekTcqfZ8Hp5v4NC9kRVdH0VCg8NChClbj
7+
Xi8kByAky7QJtflsxBCEz2nv/OR1mqfg1foJowIDAQABAoIBACQDD+fqa+ECj33D
8+
tK0KxzY0Li9EkwNXwu5Xyy/vxMKyjbl5zB+2q3z6IQ8thd/BNl7ro9UcHqSSrXXN
9+
4lifXiyWctcNEW27Wlv1aIKMfIbvxTtRPwjrhClxZVODH2RL74zHLdd+VtV+nJIT
10+
mACOPLqaGjQYgYUBfyEeUzvcbpmuKL3kh/t/a2keCielLfSQgvTj4bgLkWbGDRs8
11+
sVae+Rj76tCRqnRkym0zZ52WKIP/b1ZJcyOBdXA7JYSAZ3bM9WO7XeS8dE/O4hug
12+
sMO3S/CU7m/qY/nSFlX0DilWo+b88TF2HlOlvnSFAasl7KWK/xXrZvDLg86ZVMh0
13+
aSNShhECgYEA5jkZEJqKrzHh6sQSDlFh706RZAcYQBi8URGlJCJHfet3Y0CN349M
14+
v3oXiPf/x54m0RPBEUtqOhWjxX5X23FSQAtiGq6EaaRJQNfG7yeQt4BRmJ0MfX+i
15+
eTiPp1313MB4eVuPaop1YWpgnvyGs5x7oHa8XzfuiDkE21cZiCGq2X0CgYEA0KW6
16+
bTL8ZNM5wKhtmNYMNlHTnaVjb577hxqI0FX05vDt7UVnk+e6szQxfjlhzaqepOos
17+
i7fzKDpXiyasLr1R4LLsOqhwyoGQYZwA8rOcmvcY8WfCpiJfuzg0g1FEbyldzzhr
18+
j+mAfBqpqOULZEaurFRHjRpiHVotce25N9wq2Z8CgYEAtYf4N5tkF1ih5tfL1PZe
19+
3q94/QKLIJ9gfhwHt0JAVQ3CCcTxGYKI5cKDpEDIssIFoX6OEfEBReOiSyugYywr
20+
yswvAxLw3cvo5vQ9rH3qIodPz6KmIp7tod/zhekU4Ifzdt23bC7Y94NFxJciL6YH
21+
5TM6vWoA7/Dl334CZ9EEQpECgYAb2cNkyCWAn+FZoiHfANNofMuug2EeiS4x/oy8
22+
onyqRwa7YUROLeRx/0mL+8TeWyQKB2gizk8a047T+DmLk6HWSIvX2JwVq+3F2bkW
23+
rHr/BHTD5IHLA1Ob/gikbrifzfnDq1hQQW7xIe37qXc3z2eJgUZ7w0XNfTgLuRu8
24+
JRtjKQKBgALYVgAMQGOlDBUzFCIKUT/n/YWNxCP1AndSakWh30Rdjpsao4FOSTB/
25+
PLCUPQuJGgInHn+lkK+vU6vMf0KTuqZbL224rVafU45SJP3l6PnTZkSCX9/mWTIr
26+
TADDJMlR5MM8HL8XSVilRMQnIPHA7PGj4G3F1QFDhdG+gg99KMA8
27+
-----END RSA PRIVATE KEY-----

tests/test_connections.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
from umapi_client import UserAction, GroupTypes, IdentityTypes, RoleTypes, UserGroupAction
3434
from umapi_client import __version__ as umapi_version
3535
from umapi_client.auth import Auth
36+
from umapi_client.auth import JWT
3637

3738

3839
def test_remote_status_success():
@@ -485,3 +486,10 @@ def test_split_group_action():
485486
group.add_users(users=add_users)
486487
assert group.maybe_split_groups(10) is True
487488
assert len(group.commands) == 3
489+
490+
def test_jwt():
491+
# make sure we get no errors when constructing a JWT
492+
from pathlib import Path
493+
with open(Path(__file__).parents[0] / 'fixture/private.key') as keyfile:
494+
jwt = JWT('xxxxxx', 'xxxxx', 'example.com', 'xxxxx', keyfile)
495+
jwt()

umapi_client/auth.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,7 @@ def __call__(self):
4848

4949
# create JSON Web Token
5050
# noinspection PyUnresolvedReferences
51-
jwt_token = jwt.encode(payload, self.key, algorithm='RS256')
52-
# decode bytes into string
53-
return jwt_token.decode("utf-8")
51+
return jwt.encode(payload, self.key, algorithm='RS256')
5452

5553

5654
class AccessRequest(object):

0 commit comments

Comments
 (0)