Skip to content

Commit 9852674

Browse files
authored
Fix detecting message accept encoding with whitespace (grpc#1882)
1 parent 54fa142 commit 9852674

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

src/Grpc.AspNetCore.Server/Internal/HttpContextServerCallContext.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,8 @@ internal bool IsEncodingInRequestAcceptEncoding(string encoding)
531531
segment = acceptEncoding;
532532
}
533533

534+
segment = segment.Trim();
535+
534536
// Check segment
535537
if (segment.SequenceEqual(encoding))
536538
{

test/FunctionalTests/Server/CompressionTests.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -430,11 +430,13 @@ public async Task SendCompressedMessageWithoutEncodingHeader_ServerErrorResponse
430430
AssertHasLogRpcConnectionError(StatusCode.Internal, "Request did not include grpc-encoding value with compressed message.");
431431
}
432432

433-
[TestCase("gzip", true)]
433+
[TestCase("gzip", "gzip", true)]
434+
[TestCase("gzip", "identity, gzip", true)]
435+
[TestCase("gzip", "gzip ", true)]
434436
#if NET6_0_OR_GREATER
435-
[TestCase("deflate", false)]
437+
[TestCase("deflate", "deflate", false)]
436438
#endif
437-
public async Task SendCompressedMessageAndReturnResultWithNoCompressFlag_ResponseNotCompressed(string algorithmName, bool algorithmSupportedByServer)
439+
public async Task SendCompressedMessageAndReturnResultWithNoCompressFlag_ResponseNotCompressed(string algorithmName, string messageAcceptEncoding, bool algorithmSupportedByServer)
438440
{
439441
// Arrange
440442
var requestMessage = new HelloRequest
@@ -447,7 +449,7 @@ public async Task SendCompressedMessageAndReturnResultWithNoCompressFlag_Respons
447449

448450
var httpRequest = GrpcHttpHelper.Create("Compression.CompressionService/WriteMessageWithoutCompression");
449451
httpRequest.Headers.Add(GrpcProtocolConstants.MessageEncodingHeader, algorithmName);
450-
httpRequest.Headers.Add(GrpcProtocolConstants.MessageAcceptEncodingHeader, algorithmName);
452+
httpRequest.Headers.Add(GrpcProtocolConstants.MessageAcceptEncodingHeader, messageAcceptEncoding);
451453
httpRequest.Content = new GrpcStreamContent(requestStream);
452454

453455
// Act

0 commit comments

Comments
 (0)