diff --git a/jetty-core/jetty-http/src/main/java/org/eclipse/jetty/http/UriCompliance.java b/jetty-core/jetty-http/src/main/java/org/eclipse/jetty/http/UriCompliance.java index 76cb2ee57497..904b119a533b 100644 --- a/jetty-core/jetty-http/src/main/java/org/eclipse/jetty/http/UriCompliance.java +++ b/jetty-core/jetty-http/src/main/java/org/eclipse/jetty/http/UriCompliance.java @@ -104,7 +104,9 @@ public String getDescription() * additional violations to avoid most ambiguous URIs. * This mode does allow {@link Violation#AMBIGUOUS_PATH_SEPARATOR}, but disallows all out {@link Violation}s. */ - public static final UriCompliance DEFAULT = new UriCompliance("DEFAULT", of(Violation.AMBIGUOUS_PATH_SEPARATOR)); + public static final UriCompliance DEFAULT = new UriCompliance("DEFAULT", + of(Violation.AMBIGUOUS_PATH_SEPARATOR, + Violation.AMBIGUOUS_PATH_ENCODING)); /** * LEGACY compliance mode that models Jetty-9.4 behavior by allowing {@link Violation#AMBIGUOUS_PATH_SEGMENT}, diff --git a/jetty-core/jetty-server/src/test/java/org/eclipse/jetty/server/RequestTest.java b/jetty-core/jetty-server/src/test/java/org/eclipse/jetty/server/RequestTest.java index bb062c6616b8..e704db08929e 100644 --- a/jetty-core/jetty-server/src/test/java/org/eclipse/jetty/server/RequestTest.java +++ b/jetty-core/jetty-server/src/test/java/org/eclipse/jetty/server/RequestTest.java @@ -1871,7 +1871,7 @@ public void testAmbiguousEncoding() throws Exception "Host: whatever\r\n" + "\r\n"; _connector.getBean(HttpConnectionFactory.class).getHttpConfiguration().setUriCompliance(UriCompliance.DEFAULT); - assertThat(_connector.getResponse(request), startsWith("HTTP/1.1 400")); + assertThat(_connector.getResponse(request), startsWith("HTTP/1.1 200")); _connector.getBean(HttpConnectionFactory.class).getHttpConfiguration().setUriCompliance(UriCompliance.LEGACY); assertThat(_connector.getResponse(request), startsWith("HTTP/1.1 200")); _connector.getBean(HttpConnectionFactory.class).getHttpConfiguration().setUriCompliance(UriCompliance.RFC3986); @@ -1902,6 +1902,11 @@ public void testAmbiguousDoubleSlash() throws Exception assertThat(_connector.getResponse(request), startsWith("HTTP/1.1 200")); _connector.getBean(HttpConnectionFactory.class).getHttpConfiguration().setUriCompliance(UriCompliance.UNSAFE); assertThat(_connector.getResponse(request), startsWith("HTTP/1.1 200")); + + UriCompliance custom = new UriCompliance("Custom", EnumSet.complementOf( + EnumSet.of(UriCompliance.Violation.AMBIGUOUS_PATH_ENCODING))); + _connector.getBean(HttpConnectionFactory.class).getHttpConfiguration().setUriCompliance(custom); + assertThat(_connector.getResponse(request), startsWith("HTTP/1.1 400")); } @Test