Aggiunto un log migliore
This commit is contained in:
@@ -192,14 +192,13 @@ class ManagerConfigTests(unittest.TestCase):
|
||||
)
|
||||
users = {"user2": {"id": "user2"}}
|
||||
|
||||
user, rewritten, redirect_target, selected_via_path = self.manager.extract_user_from_http_request(request, users)
|
||||
user, rewritten, redirect_target = self.manager.extract_user_from_http_request(request, users)
|
||||
|
||||
self.assertEqual(user["id"], "user2")
|
||||
self.assertEqual(rewritten, request)
|
||||
self.assertIsNone(redirect_target)
|
||||
self.assertFalse(selected_via_path)
|
||||
|
||||
def test_extract_user_from_path_rewrites_request_for_direct_proxying(self):
|
||||
def test_extract_user_from_path_returns_redirect_target(self):
|
||||
request = (
|
||||
b"GET /user1/websockify?token=abc HTTP/1.1\r\n"
|
||||
b"Host: localhost:8080\r\n"
|
||||
@@ -208,112 +207,11 @@ class ManagerConfigTests(unittest.TestCase):
|
||||
)
|
||||
users = {"user1": {"id": "user1"}}
|
||||
|
||||
user, rewritten, redirect_target, selected_via_path = self.manager.extract_user_from_http_request(request, users)
|
||||
|
||||
self.assertEqual(user["id"], "user1")
|
||||
self.assertEqual(
|
||||
rewritten,
|
||||
(
|
||||
b"GET /websockify?token=abc HTTP/1.1\r\n"
|
||||
b"Host: localhost:8080\r\n"
|
||||
b"Upgrade: websocket\r\n"
|
||||
b"\r\n"
|
||||
),
|
||||
)
|
||||
self.assertIsNone(redirect_target)
|
||||
self.assertTrue(selected_via_path)
|
||||
|
||||
def test_extract_user_from_bare_user_path_rewrites_to_root(self):
|
||||
request = (
|
||||
b"GET /user1 HTTP/1.1\r\n"
|
||||
b"Host: 10.200.200.113:8080\r\n"
|
||||
b"Connection: keep-alive\r\n"
|
||||
b"\r\n"
|
||||
)
|
||||
users = {"user1": {"id": "user1"}}
|
||||
|
||||
user, rewritten, redirect_target, selected_via_path = self.manager.extract_user_from_http_request(request, users)
|
||||
|
||||
self.assertEqual(user["id"], "user1")
|
||||
self.assertEqual(
|
||||
rewritten,
|
||||
(
|
||||
b"GET / HTTP/1.1\r\n"
|
||||
b"Host: 10.200.200.113:8080\r\n"
|
||||
b"Connection: keep-alive\r\n"
|
||||
b"\r\n"
|
||||
),
|
||||
)
|
||||
self.assertIsNone(redirect_target)
|
||||
self.assertTrue(selected_via_path)
|
||||
|
||||
def test_extract_user_from_absolute_form_request_rewrites_to_root(self):
|
||||
request = (
|
||||
b"GET http://10.200.200.113:8080/user1 HTTP/1.1\r\n"
|
||||
b"Host: 10.200.200.113:8080\r\n"
|
||||
b"Connection: keep-alive\r\n"
|
||||
b"\r\n"
|
||||
)
|
||||
users = {"user1": {"id": "user1"}}
|
||||
|
||||
user, rewritten, redirect_target, selected_via_path = self.manager.extract_user_from_http_request(request, users)
|
||||
|
||||
self.assertEqual(user["id"], "user1")
|
||||
self.assertEqual(
|
||||
rewritten,
|
||||
(
|
||||
b"GET / HTTP/1.1\r\n"
|
||||
b"Host: 10.200.200.113:8080\r\n"
|
||||
b"Connection: keep-alive\r\n"
|
||||
b"\r\n"
|
||||
),
|
||||
)
|
||||
self.assertIsNone(redirect_target)
|
||||
self.assertTrue(selected_via_path)
|
||||
|
||||
def test_extract_user_from_cookie_route(self):
|
||||
request = (
|
||||
b"GET / HTTP/1.1\r\n"
|
||||
b"Host: 10.200.200.113:8080\r\n"
|
||||
b"Cookie: fis_user_route=user2\r\n"
|
||||
b"Connection: keep-alive\r\n"
|
||||
b"\r\n"
|
||||
)
|
||||
users = {"user2": {"id": "user2"}}
|
||||
|
||||
user, rewritten, redirect_target, selected_via_path = self.manager.extract_user_from_http_request(request, users)
|
||||
|
||||
self.assertEqual(user["id"], "user2")
|
||||
self.assertEqual(rewritten, request)
|
||||
self.assertIsNone(redirect_target)
|
||||
self.assertFalse(selected_via_path)
|
||||
|
||||
def test_remembered_gateway_route_returns_user_within_ttl(self):
|
||||
self.manager.users_by_id = {"user1": {"id": "user1"}}
|
||||
self.manager.gateway_client_routes.clear()
|
||||
self.manager.time = types.SimpleNamespace(time=lambda: 100.0)
|
||||
self.manager.GATEWAY_ROUTE_TTL_SECONDS = 60
|
||||
|
||||
self.manager.remember_gateway_route("10.200.200.136", "user1")
|
||||
|
||||
user = self.manager.get_remembered_gateway_user("10.200.200.136")
|
||||
|
||||
self.assertEqual(user["id"], "user1")
|
||||
|
||||
def test_remembered_gateway_route_expires_after_ttl(self):
|
||||
now = {"value": 100.0}
|
||||
self.manager.users_by_id = {"user1": {"id": "user1"}}
|
||||
self.manager.gateway_client_routes.clear()
|
||||
self.manager.time = types.SimpleNamespace(time=lambda: now["value"])
|
||||
self.manager.GATEWAY_ROUTE_TTL_SECONDS = 60
|
||||
|
||||
self.manager.remember_gateway_route("10.200.200.136", "user1")
|
||||
now["value"] = 161.0
|
||||
|
||||
user = self.manager.get_remembered_gateway_user("10.200.200.136")
|
||||
user, rewritten, redirect_target = self.manager.extract_user_from_http_request(request, users)
|
||||
|
||||
self.assertIsNone(user)
|
||||
self.assertEqual(self.manager.gateway_client_routes, {})
|
||||
self.assertEqual(rewritten, request)
|
||||
self.assertEqual(redirect_target, "http://user1.localhost:8080/websockify?token=abc")
|
||||
|
||||
def test_wait_until_ready_applies_stabilization_delay(self):
|
||||
sleep_calls = []
|
||||
|
||||
Reference in New Issue
Block a user