mirror of
https://github.com/traefik/traefik.git
synced 2025-05-05 15:33:01 +00:00
Do not abort request when response content-type is malformed
This commit is contained in:
parent
5953331c73
commit
42778d2ba6
@ -233,8 +233,12 @@ func (r *responseWriter) Write(p []byte) (int, error) {
|
||||
// Disable compression according to user wishes in excludedContentTypes or includedContentTypes.
|
||||
if ct := r.rw.Header().Get(contentType); ct != "" {
|
||||
mediaType, params, err := mime.ParseMediaType(ct)
|
||||
// To align the behavior with the klauspost handler for Gzip,
|
||||
// if the MIME type is not parsable the compression is disabled.
|
||||
if err != nil {
|
||||
return 0, fmt.Errorf("parsing content-type media type: %w", err)
|
||||
r.compressionDisabled = true
|
||||
r.rw.WriteHeader(r.statusCode)
|
||||
return r.rw.Write(p)
|
||||
}
|
||||
|
||||
if len(r.includedContentTypes) > 0 {
|
||||
|
@ -577,6 +577,11 @@ func Test_ExcludedContentTypes(t *testing.T) {
|
||||
contentType: "",
|
||||
expCompression: true,
|
||||
},
|
||||
{
|
||||
desc: "MIME malformed",
|
||||
contentType: "application/json;charset=UTF-8;charset=utf-8",
|
||||
expCompression: false,
|
||||
},
|
||||
{
|
||||
desc: "MIME match",
|
||||
contentType: "application/json",
|
||||
@ -687,6 +692,11 @@ func Test_IncludedContentTypes(t *testing.T) {
|
||||
contentType: "",
|
||||
expCompression: true,
|
||||
},
|
||||
{
|
||||
desc: "MIME malformed",
|
||||
contentType: "application/json;charset=UTF-8;charset=utf-8",
|
||||
expCompression: false,
|
||||
},
|
||||
{
|
||||
desc: "MIME match",
|
||||
contentType: "application/json",
|
||||
|
Loading…
x
Reference in New Issue
Block a user