You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
4.8 KiB
115 lines
4.8 KiB
From 0f175003480b666fba78a5eda8dbc1dee07917dd Mon Sep 17 00:00:00 2001
|
|
From: Javier Cacheiro <javier.cacheiro.lopez@cesga.es>
|
|
Date: Wed, 25 May 2022 12:40:29 +0200
|
|
Subject: [PATCH] Support for jwcrypto>=1.3
|
|
|
|
---
|
|
tests/test_token_plugins.py | 20 ++++++++++----------
|
|
websockify/token_plugins.py | 4 ++--
|
|
2 files changed, 12 insertions(+), 12 deletions(-)
|
|
|
|
diff --git a/tests/test_token_plugins.py b/tests/test_token_plugins.py
|
|
index 00078c7..3e1fd19 100644
|
|
--- a/tests/test_token_plugins.py
|
|
+++ b/tests/test_token_plugins.py
|
|
@@ -4,7 +4,7 @@
|
|
|
|
import unittest
|
|
from unittest.mock import patch, mock_open, MagicMock
|
|
-from jwcrypto import jwt
|
|
+from jwcrypto import jwt, jwk
|
|
|
|
from websockify.token_plugins import ReadOnlyTokenFile, JWTTokenApi, TokenRedis
|
|
|
|
@@ -56,7 +56,7 @@ class JWSTokenTestCase(unittest.TestCase):
|
|
def test_asymmetric_jws_token_plugin(self):
|
|
plugin = JWTTokenApi("./tests/fixtures/public.pem")
|
|
|
|
- key = jwt.JWK()
|
|
+ key = jwk.JWK()
|
|
private_key = open("./tests/fixtures/private.pem", "rb").read()
|
|
key.import_from_pem(private_key)
|
|
jwt_token = jwt.JWT({"alg": "RS256"}, {'host': "remote_host", 'port': "remote_port"})
|
|
@@ -71,7 +71,7 @@ def test_asymmetric_jws_token_plugin(self):
|
|
def test_asymmetric_jws_token_plugin_with_illigal_key_exception(self):
|
|
plugin = JWTTokenApi("wrong.pub")
|
|
|
|
- key = jwt.JWK()
|
|
+ key = jwk.JWK()
|
|
private_key = open("./tests/fixtures/private.pem", "rb").read()
|
|
key.import_from_pem(private_key)
|
|
jwt_token = jwt.JWT({"alg": "RS256"}, {'host': "remote_host", 'port': "remote_port"})
|
|
@@ -85,7 +85,7 @@ def test_asymmetric_jws_token_plugin_with_illigal_key_exception(self):
|
|
def test_jwt_valid_time(self, mock_time):
|
|
plugin = JWTTokenApi("./tests/fixtures/public.pem")
|
|
|
|
- key = jwt.JWK()
|
|
+ key = jwk.JWK()
|
|
private_key = open("./tests/fixtures/private.pem", "rb").read()
|
|
key.import_from_pem(private_key)
|
|
jwt_token = jwt.JWT({"alg": "RS256"}, {'host': "remote_host", 'port': "remote_port", 'nbf': 100, 'exp': 200 })
|
|
@@ -102,7 +102,7 @@ def test_jwt_valid_time(self, mock_time):
|
|
def test_jwt_early_time(self, mock_time):
|
|
plugin = JWTTokenApi("./tests/fixtures/public.pem")
|
|
|
|
- key = jwt.JWK()
|
|
+ key = jwk.JWK()
|
|
private_key = open("./tests/fixtures/private.pem", "rb").read()
|
|
key.import_from_pem(private_key)
|
|
jwt_token = jwt.JWT({"alg": "RS256"}, {'host': "remote_host", 'port': "remote_port", 'nbf': 100, 'exp': 200 })
|
|
@@ -117,7 +117,7 @@ def test_jwt_early_time(self, mock_time):
|
|
def test_jwt_late_time(self, mock_time):
|
|
plugin = JWTTokenApi("./tests/fixtures/public.pem")
|
|
|
|
- key = jwt.JWK()
|
|
+ key = jwk.JWK()
|
|
private_key = open("./tests/fixtures/private.pem", "rb").read()
|
|
key.import_from_pem(private_key)
|
|
jwt_token = jwt.JWT({"alg": "RS256"}, {'host': "remote_host", 'port': "remote_port", 'nbf': 100, 'exp': 200 })
|
|
@@ -132,7 +132,7 @@ def test_symmetric_jws_token_plugin(self):
|
|
plugin = JWTTokenApi("./tests/fixtures/symmetric.key")
|
|
|
|
secret = open("./tests/fixtures/symmetric.key").read()
|
|
- key = jwt.JWK()
|
|
+ key = jwk.JWK()
|
|
key.import_key(kty="oct",k=secret)
|
|
jwt_token = jwt.JWT({"alg": "HS256"}, {'host': "remote_host", 'port': "remote_port"})
|
|
jwt_token.make_signed_token(key)
|
|
@@ -147,7 +147,7 @@ def test_symmetric_jws_token_plugin_with_illigal_key_exception(self):
|
|
plugin = JWTTokenApi("wrong_sauce")
|
|
|
|
secret = open("./tests/fixtures/symmetric.key").read()
|
|
- key = jwt.JWK()
|
|
+ key = jwk.JWK()
|
|
key.import_key(kty="oct",k=secret)
|
|
jwt_token = jwt.JWT({"alg": "HS256"}, {'host': "remote_host", 'port': "remote_port"})
|
|
jwt_token.make_signed_token(key)
|
|
@@ -159,8 +159,8 @@ def test_symmetric_jws_token_plugin_with_illigal_key_exception(self):
|
|
def test_asymmetric_jwe_token_plugin(self):
|
|
plugin = JWTTokenApi("./tests/fixtures/private.pem")
|
|
|
|
- private_key = jwt.JWK()
|
|
- public_key = jwt.JWK()
|
|
+ private_key = jwk.JWK()
|
|
+ public_key = jwk.JWK()
|
|
private_key_data = open("./tests/fixtures/private.pem", "rb").read()
|
|
public_key_data = open("./tests/fixtures/public.pem", "rb").read()
|
|
private_key.import_from_pem(private_key_data)
|
|
diff --git a/websockify/token_plugins.py b/websockify/token_plugins.py
|
|
index 4dc29de..19005d3 100644
|
|
--- a/websockify/token_plugins.py
|
|
+++ b/websockify/token_plugins.py
|
|
@@ -103,10 +103,10 @@ class JWTTokenApi(BasePlugin):
|
|
|
|
def lookup(self, token):
|
|
try:
|
|
- from jwcrypto import jwt
|
|
+ from jwcrypto import jwt, jwk
|
|
import json
|
|
|
|
- key = jwt.JWK()
|
|
+ key = jwk.JWK()
|
|
|
|
try:
|
|
with open(self.source, 'rb') as key_file:
|