Skip to content

Commit

Permalink
Update cloud flare header test
Browse files Browse the repository at this point in the history
  • Loading branch information
myieye committed Nov 30, 2023
1 parent 7700129 commit 43e7cff
Show file tree
Hide file tree
Showing 8 changed files with 615 additions and 38 deletions.
2 changes: 1 addition & 1 deletion backend/LexCore/Auth/LexAuthUser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace LexCore.Auth;

public record LexAuthUser
{
//from testing done in November 2023, we started getting errors at 10,225 chars
// from testing done in November 2023, we started getting errors at 10,200 chars. See HeaderTests.CheckCloudflareHeaderSizeLimit.
public const int MaxJwtLength = 9000;
public const int MaxProjectCount = 170;
public static readonly JsonTypeInfo LexAuthUserTypeInfo =
Expand Down
27 changes: 19 additions & 8 deletions backend/Testing/ApiTests/HeaderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,26 @@ public HeaderTests()
[Fact]
public async Task CheckCloudflareHeaderSizeLimit()
{
//from testing done in November 2023, we started getting errors at 10,225 chars
int headerSize = 10210;
/*
From testing done in November 2023, for 300 iterations a header size of:
10,210 failed 7 times
10,200 failed 1 time
10,195 failed 0 times
*/
var headerSize = 10195;
var iterations = 10; // a slightly bigger sample set, so we're more confident that we're in the clear
var failStatusCodes = new List<HttpStatusCode>();
for (var i = 0; i < iterations; i++)
{
var response = await HttpClient.SendAsync(
new HttpRequestMessage(HttpMethod.Get, "https://staging.languagedepot.org/api/healthz")
{
Headers = { { "test", RandomString(headerSize) } }
});

var response = await HttpClient.SendAsync(
new HttpRequestMessage(HttpMethod.Get, "https://staging.languagedepot.org/api/healthz")
{
Headers = { { "test", RandomString(headerSize) } }
});
response.StatusCode.ShouldBe(HttpStatusCode.OK, $"header size: {headerSize}");
if (response.StatusCode != HttpStatusCode.OK) failStatusCodes.Add(response.StatusCode);
}
failStatusCodes.ShouldBeEmpty();
}

private string RandomString(int length)
Expand Down
2 changes: 1 addition & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@
"@vitejs/plugin-basic-ssl": "^1.0.1",
"css-tree": "^2.3.1",
"mjml": "^4.14.1",
"svelte-exmarkdown": "^3.0.1",
"svelte-intl-precompile": "^0.12.3",
"@myieye/svelte-markdown": "^0.4.5",
"sveltekit-search-params": "^1.0.15",
"tus-js-client": "^3.1.1"
}
Expand Down
Loading

0 comments on commit 43e7cff

Please sign in to comment.