Support ETags with special chars in ServletWebRequest

This commit makes sure that HTTP request headers containing ETag values
are properly parsed and not simply tokenized using a "," separator.
Indeed, ETags can legally contain separator characters such as " " and
",".

Issue: SPR-14216
This commit is contained in:
Brian Clozel
2016-04-29 11:17:47 +02:00
parent fdb31cd715
commit 29da44c8dc
2 changed files with 31 additions and 14 deletions

View File

@@ -144,6 +144,18 @@ public class ServletWebRequestHttpMethodsTests {
assertEquals(eTag, servletResponse.getHeader("ETag"));
}
@Test
public void checkNotModifiedETagWithSeparatorChars() {
String eTag = "\"Foo, Bar\"";
servletRequest.addHeader("If-None-Match", eTag);
assertTrue(request.checkNotModified(eTag));
assertEquals(304, servletResponse.getStatus());
assertEquals(eTag, servletResponse.getHeader("ETag"));
}
@Test
public void checkModifiedETag() {
String currentETag = "\"Foo\"";