Skip to content

Commit 8f23484

Browse files
committed
PR feedback
1 parent ab968f7 commit 8f23484

File tree

5 files changed

+19
-21
lines changed

5 files changed

+19
-21
lines changed

src/Http/Http.Features/src/HttpsCompressionMode.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public enum HttpsCompressionMode
1111
/// <summary>
1212
/// No value has been specified, use the configured defaults.
1313
/// </summary>
14-
Default,
14+
Default = 0,
1515

1616
/// <summary>
1717
/// Opts out of compression over HTTPS. Enabling compression on HTTPS requests for remotely manipulable content

src/Middleware/ResponseCompression/src/BodyWrapperStream.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ internal ValueTask FinishCompressionAsync()
4646
return _compressionStream?.DisposeAsync() ?? new ValueTask();
4747
}
4848

49-
HttpsCompressionMode IHttpsCompressionFeature.Mode { get; set; }
49+
HttpsCompressionMode IHttpsCompressionFeature.Mode { get; set; } = HttpsCompressionMode.Default;
5050

5151
public override bool CanRead => false;
5252

src/Middleware/ResponseCompression/src/ResponseCompressionProvider.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ public virtual bool ShouldCompressResponse(HttpContext context)
173173
{
174174
var httpsMode = context.Features.Get<IHttpsCompressionFeature>()?.Mode ?? HttpsCompressionMode.Default;
175175

176+
// Check if the app has opted into or out of compression over HTTPS
176177
if (context.Request.IsHttps
177178
&& (httpsMode == HttpsCompressionMode.DoNotCompress
178179
|| !(_enableForHttps || httpsMode == HttpsCompressionMode.Compress)))

src/Middleware/ResponseCompression/test/ResponseCompressionMiddlewareTest.cs

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -458,9 +458,10 @@ public async Task Request_Https_CompressedIfEnabled(bool enableHttps, int expect
458458
}
459459

460460
[Theory]
461-
[InlineData(false, 100)]
462-
[InlineData(true, 30)]
463-
public async Task Request_Https_CompressedIfOverriden(bool overrideHttps, int expectedLength)
461+
[InlineData(HttpsCompressionMode.Default, 100)]
462+
[InlineData(HttpsCompressionMode.DoNotCompress, 100)]
463+
[InlineData(HttpsCompressionMode.Compress, 30)]
464+
public async Task Request_Https_CompressedIfOptIn(HttpsCompressionMode mode, int expectedLength)
464465
{
465466
var sink = new TestSink(
466467
TestSink.EnableWithTypeName<ResponseCompressionProvider>,
@@ -482,11 +483,8 @@ public async Task Request_Https_CompressedIfOverriden(bool overrideHttps, int ex
482483
app.UseResponseCompression();
483484
app.Run(context =>
484485
{
485-
if (overrideHttps)
486-
{
487-
var feature = context.Features.Get<IHttpsCompressionFeature>();
488-
feature.Mode = HttpsCompressionMode.Compress;
489-
}
486+
var feature = context.Features.Get<IHttpsCompressionFeature>();
487+
feature.Mode = mode;
490488
context.Response.ContentType = TextPlain;
491489
return context.Response.WriteAsync(new string('a', 100));
492490
});
@@ -507,7 +505,7 @@ public async Task Request_Https_CompressedIfOverriden(bool overrideHttps, int ex
507505
Assert.Equal(expectedLength, response.Content.ReadAsByteArrayAsync().Result.Length);
508506

509507
var logMessages = sink.Writes.ToList();
510-
if (overrideHttps)
508+
if (mode == HttpsCompressionMode.Compress)
511509
{
512510
AssertCompressedWithLog(logMessages, "gzip");
513511
}
@@ -518,9 +516,10 @@ public async Task Request_Https_CompressedIfOverriden(bool overrideHttps, int ex
518516
}
519517

520518
[Theory]
521-
[InlineData(true, 100)]
522-
[InlineData(false, 30)]
523-
public async Task Request_Https_NotCompressedIfOverriden(bool overrideHttps, int expectedLength)
519+
[InlineData(HttpsCompressionMode.Default, 30)]
520+
[InlineData(HttpsCompressionMode.Compress, 30)]
521+
[InlineData(HttpsCompressionMode.DoNotCompress, 100)]
522+
public async Task Request_Https_NotCompressedIfOptOut(HttpsCompressionMode mode, int expectedLength)
524523
{
525524
var sink = new TestSink(
526525
TestSink.EnableWithTypeName<ResponseCompressionProvider>,
@@ -542,11 +541,8 @@ public async Task Request_Https_NotCompressedIfOverriden(bool overrideHttps, int
542541
app.UseResponseCompression();
543542
app.Run(context =>
544543
{
545-
if (overrideHttps)
546-
{
547-
var feature = context.Features.Get<IHttpsCompressionFeature>();
548-
feature.Mode = HttpsCompressionMode.DoNotCompress;
549-
}
544+
var feature = context.Features.Get<IHttpsCompressionFeature>();
545+
feature.Mode = mode;
550546
context.Response.ContentType = TextPlain;
551547
return context.Response.WriteAsync(new string('a', 100));
552548
});
@@ -567,7 +563,7 @@ public async Task Request_Https_NotCompressedIfOverriden(bool overrideHttps, int
567563
Assert.Equal(expectedLength, response.Content.ReadAsByteArrayAsync().Result.Length);
568564

569565
var logMessages = sink.Writes.ToList();
570-
if (overrideHttps)
566+
if (mode == HttpsCompressionMode.DoNotCompress)
571567
{
572568
AssertLog(logMessages.Skip(1).Single(), LogLevel.Debug, "No response compression available for HTTPS requests. See ResponseCompressionOptions.EnableForHttps.");
573569
}

src/Middleware/StaticFiles/src/StaticFileOptions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ public StaticFileOptions(SharedOptions sharedOptions) : base(sharedOptions)
4848
public bool ServeUnknownFileTypes { get; set; }
4949

5050
/// <summary>
51-
/// Indicates if files should be compressed for HTTPS requests. The default value is <see cref="HttpsCompressionMode.Compress"/>.
51+
/// Indicates if files should be compressed for HTTPS requests when the Response Compression middleware is available.
52+
/// The default value is <see cref="HttpsCompressionMode.Compress"/>.
5253
/// </summary>
5354
/// <remarks>
5455
/// Enabling compression on HTTPS requests for remotely manipulable content may expose security problems.

0 commit comments

Comments
 (0)