def test_symmetric_jws_token_plugin_with_illigal_key_exception(self): secret = open("./tests/fixtures/symmetric.key").read() key = jwt.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) self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwt_token.serialize()) self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error', staticmethod(lambda *args, **kwargs: None)) self.handler.server.token_plugin = token_plugins.JWTTokenApi("wrong_sauce") self.assertRaises(self.handler.server.EClose, self.handler.validate_connection)
def test_asymmetric_jws_token_plugin(self): key = jwt.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"}) jwt_token.make_signed_token(key) self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format(jwt_token=jwt_token.serialize()) self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error', staticmethod(lambda *args, **kwargs: None)) self.handler.server.token_plugin = token_plugins.JWTTokenApi("./tests/fixtures/public.pem") self.handler.validate_connection() self.assertEqual(self.handler.server.target_host, "remote_host") self.assertEqual(self.handler.server.target_port, "remote_port")
def test_asymmetric_jws_token_plugin_with_illigal_key_exception(self): key = jwt.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" }) jwt_token.make_signed_token(key) self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format( jwt_token=jwt_token.serialize()) self.handler.server.token_plugin = token_plugins.JWTTokenApi( "wrong.pub") with self.assertRaises(self.handler.server.EClose): self.handler.validate_connection()
def test_jwt_token_plugin_with_illigal_key_exception(self): private_key = open("./tests/jwt_rsa").read() jwt_token = jwt.encode({ 'host': "remote_host", 'port': "remote_port" }, private_key, algorithm='RS256') self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format( jwt_token=jwt_token) self.stubs.Set(websocketproxy.ProxyRequestHandler, 'send_auth_error', staticmethod(lambda *args, **kwargs: None)) self.handler.server.token_plugin = token_plugins.JWTTokenApi( "wrong.pub") self.assertRaises(self.handler.server.EClose, self.handler.validate_connection)
def test_symmetric_jws_token_plugin(self): secret = open("./tests/fixtures/symmetric.key").read() key = jwt.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) self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format( jwt_token=jwt_token.serialize()) self.handler.server.token_plugin = token_plugins.JWTTokenApi( "./tests/fixtures/symmetric.key") self.handler.validate_connection() self.assertEqual(self.handler.server.target_host, "remote_host") self.assertEqual(self.handler.server.target_port, "remote_port")
def test_asymmetric_jws_token_plugin(self): key = jwt.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" }) jwt_token.make_signed_token(key) self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format( jwt_token=jwt_token.serialize()) self.handler.server.token_plugin = token_plugins.JWTTokenApi( "./tests/fixtures/public.pem") self.handler.validate_connection() self.assertEqual(self.handler.server.target_host, "remote_host") self.assertEqual(self.handler.server.target_port, "remote_port")
def test_jwt_late_time(self, mock_time): key = jwt.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 }) jwt_token.make_signed_token(key) self.handler.path = "https://localhost:6080/websockify?token={jwt_token}".format( jwt_token=jwt_token.serialize()) mock_time.return_value = 250 self.handler.server.token_plugin = token_plugins.JWTTokenApi( "./tests/fixtures/public.pem") with self.assertRaises(self.handler.server.EClose): self.handler.validate_connection()