From a82bca653b3435a2ff20314490cfee5bd0a6ef5d Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Mon, 10 Oct 2016 11:30:15 -0400 Subject: [PATCH] INT-4135: Ignore case check for HTTP Content-Type JIRA: https://jira.spring.io/browse/INT-4135 The incoming `Content-Type` HTTP header can be in any arbitrary case. Fix `DefaultHttpHeaderMapper` `Content-Type` header re-mapping to the `MessageHeaders.CONTENT_TYPE` via `equalsIgnoreCase()` comparison **Cherry-pick to 4.3.x** --- .../http/support/DefaultHttpHeaderMapper.java | 2 +- .../DefaultHttpHeaderMapperFromMessageInboundTests.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-integration-http/src/main/java/org/springframework/integration/http/support/DefaultHttpHeaderMapper.java b/spring-integration-http/src/main/java/org/springframework/integration/http/support/DefaultHttpHeaderMapper.java index 2bdaa9771e..7f1a69531f 100644 --- a/spring-integration-http/src/main/java/org/springframework/integration/http/support/DefaultHttpHeaderMapper.java +++ b/spring-integration-http/src/main/java/org/springframework/integration/http/support/DefaultHttpHeaderMapper.java @@ -462,7 +462,7 @@ public class DefaultHttpHeaderMapper implements HeaderMapper, BeanF if (logger.isDebugEnabled()) { logger.debug(MessageFormat.format("setting headerName=[{0}], value={1}", name, value)); } - if (CONTENT_TYPE.equals(name)) { + if (CONTENT_TYPE.equalsIgnoreCase(name)) { name = MessageHeaders.CONTENT_TYPE; } this.setMessageHeader(target, name, value); diff --git a/spring-integration-http/src/test/java/org/springframework/integration/http/support/DefaultHttpHeaderMapperFromMessageInboundTests.java b/spring-integration-http/src/test/java/org/springframework/integration/http/support/DefaultHttpHeaderMapperFromMessageInboundTests.java index ca162933f2..ffe4c70077 100644 --- a/spring-integration-http/src/test/java/org/springframework/integration/http/support/DefaultHttpHeaderMapperFromMessageInboundTests.java +++ b/spring-integration-http/src/test/java/org/springframework/integration/http/support/DefaultHttpHeaderMapperFromMessageInboundTests.java @@ -581,6 +581,15 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests { assertEquals(MediaType.valueOf("text/plain"), httpHeaders.getContentType()); } + @Test + public void testContentTypeInboundHeader() throws Exception { + HeaderMapper mapper = DefaultHttpHeaderMapper.inboundMapper(); + HttpHeaders headers = new HttpHeaders(); + headers.add(HttpHeaders.CONTENT_TYPE.toLowerCase(), "text/plain"); + Map result = mapper.toHeaders(headers); + assertEquals(MediaType.valueOf("text/plain"), result.get(MessageHeaders.CONTENT_TYPE)); + } + public static class TestClass {