Improve illegal MimeType checks

Issue: SPR-14124
master
Rossen Stoyanchev 9 years ago
parent aafd46aeb3
commit 50c11028d5
  1. 5
      spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java
  2. 9
      spring-core/src/test/java/org/springframework/util/MimeTypeTests.java

@ -1,5 +1,5 @@
/*
* Copyright 2002-2015 the original author or authors.
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -220,6 +220,9 @@ public abstract class MimeTypeUtils {
throw new InvalidMimeTypeException(mimeType, "'mimeType' must not be empty");
}
String[] parts = StringUtils.tokenizeToStringArray(mimeType, ";");
if (parts.length == 0) {
throw new InvalidMimeTypeException(mimeType, "'mimeType' must not be empty");
}
String fullType = parts[0].trim();
// java.net.HttpURLConnection returns a *; q=.2 Accept header

@ -189,6 +189,11 @@ public class MimeTypeTests {
MimeTypeUtils.parseMimeType("audio/basic)");
}
@Test(expected = InvalidMimeTypeException.class)
public void parseMimeTypeMissingTypeAndSubtype() throws Exception {
MimeTypeUtils.parseMimeType(" ;a=b");
}
@Test(expected = InvalidMimeTypeException.class)
public void parseMimeTypeEmptyParameterAttribute() {
MimeTypeUtils.parseMimeType("audio/*;=value");
@ -263,13 +268,13 @@ public class MimeTypeTests {
assertTrue("Invalid comparison result", audioBasicLevel.compareTo(audio) > 0);
List<MimeType> expected = new ArrayList<MimeType>();
List<MimeType> expected = new ArrayList<>();
expected.add(audio);
expected.add(audioBasic);
expected.add(audioBasicLevel);
expected.add(audioWave);
List<MimeType> result = new ArrayList<MimeType>(expected);
List<MimeType> result = new ArrayList<>(expected);
Random rnd = new Random();
// shuffle & sort 10 times
for (int i = 0; i < 10; i++) {

Loading…
Cancel
Save