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")
Exemple #3
0
    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()
Exemple #4
0
    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)
Exemple #5
0
    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")
Exemple #6
0
    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")
Exemple #7
0
    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()