mirror of
https://github.com/traefik/traefik.git
synced 2025-05-05 23:43: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.
|
// Disable compression according to user wishes in excludedContentTypes or includedContentTypes.
|
||||||
if ct := r.rw.Header().Get(contentType); ct != "" {
|
if ct := r.rw.Header().Get(contentType); ct != "" {
|
||||||
mediaType, params, err := mime.ParseMediaType(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 {
|
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 {
|
if len(r.includedContentTypes) > 0 {
|
||||||
|
@ -577,6 +577,11 @@ func Test_ExcludedContentTypes(t *testing.T) {
|
|||||||
contentType: "",
|
contentType: "",
|
||||||
expCompression: true,
|
expCompression: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
desc: "MIME malformed",
|
||||||
|
contentType: "application/json;charset=UTF-8;charset=utf-8",
|
||||||
|
expCompression: false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
desc: "MIME match",
|
desc: "MIME match",
|
||||||
contentType: "application/json",
|
contentType: "application/json",
|
||||||
@ -687,6 +692,11 @@ func Test_IncludedContentTypes(t *testing.T) {
|
|||||||
contentType: "",
|
contentType: "",
|
||||||
expCompression: true,
|
expCompression: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
desc: "MIME malformed",
|
||||||
|
contentType: "application/json;charset=UTF-8;charset=utf-8",
|
||||||
|
expCompression: false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
desc: "MIME match",
|
desc: "MIME match",
|
||||||
contentType: "application/json",
|
contentType: "application/json",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user