diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/condition/AbstractMediaTypeExpression.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/condition/AbstractMediaTypeExpression.java index 33ab997d3b..c529b9a96f 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/condition/AbstractMediaTypeExpression.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/condition/AbstractMediaTypeExpression.java @@ -85,7 +85,7 @@ abstract class AbstractMediaTypeExpression implements Comparable entry : getMediaType().getParameters().entrySet()) { if (StringUtils.hasText(entry.getValue())) { String value = contentType.getParameter(entry.getKey()); - if (StringUtils.hasText(value) && !entry.getValue().equals(value)) { + if (StringUtils.hasText(value) && !entry.getValue().equalsIgnoreCase(value)) { return false; } } diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/ConsumesRequestConditionTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/ConsumesRequestConditionTests.java index b05e0960c5..39063d93b1 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/ConsumesRequestConditionTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/ConsumesRequestConditionTests.java @@ -98,6 +98,10 @@ public class ConsumesRequestConditionTests { condition = new ConsumesRequestCondition(base); exchange = postExchange(base + ";profile=\"a\""); assertThat(condition.getMatchingCondition(exchange)).isNotNull(); + + condition = new ConsumesRequestCondition(base + ";profile=\"a\""); + exchange = postExchange(base + ";profile=\"A\""); + assertThat(condition.getMatchingCondition(exchange)).isNotNull(); } @Test diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java index 1eb40eaa2a..fbdb53d63c 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java @@ -85,7 +85,7 @@ abstract class AbstractMediaTypeExpression implements MediaTypeExpression, Compa for (Map.Entry entry : getMediaType().getParameters().entrySet()) { if (StringUtils.hasText(entry.getValue())) { String value = contentType.getParameter(entry.getKey()); - if (StringUtils.hasText(value) && !entry.getValue().equals(value)) { + if (StringUtils.hasText(value) && !entry.getValue().equalsIgnoreCase(value)) { return false; } } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/ConsumesRequestConditionTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/ConsumesRequestConditionTests.java index 96ad7850f2..8d15791efd 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/ConsumesRequestConditionTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/ConsumesRequestConditionTests.java @@ -107,6 +107,10 @@ public class ConsumesRequestConditionTests { condition = new ConsumesRequestCondition(base); request.setContentType(base + ";profile=\"a\""); assertThat(condition.getMatchingCondition(request)).isNotNull(); + + condition = new ConsumesRequestCondition(base + ";profile=\"a\""); + request.setContentType(base + ";profile=\"A\""); + assertThat(condition.getMatchingCondition(request)).isNotNull(); } @Test