Skip to content

Commit

Permalink
Fix according changes in Tempesta
Browse files Browse the repository at this point in the history
Add max_misses=0 for enforced cookies, where
we do not check this option
  • Loading branch information
EvgeniiMekhanik committed Dec 22, 2023
1 parent 46ff35a commit b0ca6df
Show file tree
Hide file tree
Showing 9 changed files with 31 additions and 417 deletions.
5 changes: 3 additions & 2 deletions helpers/nginx.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,9 @@ def set_workdir(self, workdir):

def set_resourse_location(self, location=""):
if not location:
location = tf_cfg.cfg.get("Server", "resources")
self.location = "root %s" % location
self.location = "return 200"
else:
self.location = "root %s" % location
self.update_config()

def set_return_code(self, code=200):
Expand Down
2 changes: 1 addition & 1 deletion http2_general/test_h2_frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ class TestH2FrameEnabledDisabledTsoGroGsoStickyCookie(
proxy_pass default;
sticky {
sticky_sessions;
cookie enforce;
cookie enforce max_misses=0;
secret "f00)9eR59*_/22";
}
}
Expand Down
58 changes: 19 additions & 39 deletions http2_general/test_h2_headers.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,42 +205,46 @@ class CookieParsing(tester.TempestaTest):

@parameterize.expand(
[
param(name="single_cookie", cookies="{0}"),
param(name="single_cookie", cookies="{0}", expected_status_code="200"),
param(
name="many_cookie_first",
cookies="{0}; cookie1=value1; cookie2=value2",
expected_status_code="200",
),
param(
name="many_cookie_last",
cookies="cookie1=value1; cookie2=value2; {0}",
expected_status_code="200",
),
param(
name="many_cookie_between",
cookies="cookie1=value1; {0}; cookie2=value2",
expected_status_code="200",
),
param(
name="duplicate_cookie",
cookies="{0}; {0}",
),
param(name="duplicate_cookie", cookies="{0}; {0}", expected_status_code="500"),
param(
name="many_cookie_and_name_as_substring_other_name_1",
cookies="cookie1__tfw=value1; {0}",
expected_status_code="200",
),
param(
name="many_cookie_and_name_as_substring_other_name_2",
cookies="__tfwcookie1=value1; {0}",
expected_status_code="200",
),
param(
name="many_cookie_and_name_as_substring_other_value_1",
cookies="cookie1=value1__tfw; {0}",
expected_status_code="200",
),
param(
name="many_cookie_and_name_as_substring_other_value_2",
cookies="cookie1=__tfwvalue1; {0}",
expected_status_code="200",
),
]
)
def test(self, name, cookies):
def test(self, name, cookies, expected_status_code):
self.start_all_services()

client = self.get_client("deproxy")
Expand All @@ -256,8 +260,11 @@ def test(self, name, cookies):
method="GET",
headers=[("cookie", cookies.format(sticky_cookie))],
),
expected_status_code="200",
expected_status_code=expected_status_code,
)
if expected_status_code != "200":
self.assertTrue(client.wait_for_connection_close())
break


class DuplicateSingularHeader(H2Base):
Expand Down Expand Up @@ -1411,12 +1418,7 @@ def __do_test_replacement(self, client, server, content_type, expected_content_t
):
request = client.create_request(
method="POST",
headers=[
(":authority", "localhost"),
(":path", "/"),
(":scheme", "https"),
("content-type", content_type.format(*state)),
],
headers=[("content-type", content_type.format(*state))],
)

client.send_request(request, "200")
Expand All @@ -1431,12 +1433,7 @@ def test_content_length_field_from_hpack_table(self):

request = client.create_request(
method="POST",
headers=[
(":authority", "localhost"),
(":path", "/"),
(":scheme", "https"),
("content-length", "10"),
],
headers=[("content-length", "10")],
body="aaaaaaaaaa",
)

Expand All @@ -1462,12 +1459,7 @@ def test_method_override_from_hpack_table(self):

request = client.create_request(
method="GET",
headers=[
(":authority", "localhost"),
(":path", "/"),
(":scheme", "https"),
("x-http-method-override", "HEAD"),
],
headers=[("x-http-method-override", "HEAD")],
)

tempesta = self.get_tempesta()
Expand All @@ -1489,12 +1481,7 @@ def test_pragma_from_hpack_table(self):

request = client.create_request(
method="GET",
headers=[
(":authority", "localhost"),
(":path", "/"),
(":scheme", "https"),
("pragma", "no-cache"),
],
headers=[("pragma", "no-cache")],
)

tempesta = self.get_tempesta()
Expand All @@ -1505,14 +1492,7 @@ def test_pragma_from_hpack_table(self):
client.send_request(request, "200")
self.assertEqual(2, len(server.requests))

request = client.create_request(
method="GET",
headers=[
(":authority", "localhost"),
(":path", "/"),
(":scheme", "https"),
],
)
request = client.create_request(method="GET", headers=[])

client.send_request(request, "200")
self.assertEqual(3, len(server.requests))
Expand Down
10 changes: 5 additions & 5 deletions sessions/test_cookies.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ def test_max_misses_(self, name, headers):
for _ in range(self.max_misses + 1):
client.send_request(request)

self.assertEqual(client.last_response.status, "429")
self.assertEqual(client.last_response.status, "403")
self.assertTrue(client.conn_is_closed)


Expand All @@ -302,15 +302,15 @@ class VhostCookies(CookiesNotEnabled):
proxy_pass vh_1_srvs;
sticky {
cookie name=c_vh1 enforce;
cookie name=c_vh1 enforce max_misses=0;
}
}
vhost vh_2 {
proxy_pass vh_2_srvs;
sticky {
cookie name=c_vh2 enforce;
cookie name=c_vh2 enforce max_misses=0;
}
}
Expand Down Expand Up @@ -443,15 +443,15 @@ class CookiesInherit(VhostCookies):
}
sticky {
cookie name=c_vh1 enforce;
cookie name=c_vh1 enforce max_misses=0;
}
vhost vh_1 {
proxy_pass vh_1_srvs;
}
sticky {
cookie name=c_vh2 enforce;
cookie name=c_vh2 enforce max_misses=0;
}
vhost vh_2 {
Expand Down
Loading

0 comments on commit b0ca6df

Please sign in to comment.