Merge pull request #7180 from eclipse/jetty-10.0.x-7160-EncodedPercentUri
Issue #7160 - Add AMBIGUOUS_PATH_ENCODING to default UriCompliance mode.
This commit is contained in:
commit
e409f35bb3
|
@ -104,7 +104,9 @@ public final class UriCompliance implements ComplianceViolation.Mode
|
||||||
* additional violations to avoid most ambiguous URIs.
|
* additional violations to avoid most ambiguous URIs.
|
||||||
* This mode does allow {@link Violation#AMBIGUOUS_PATH_SEPARATOR}, but disallows all out {@link Violation}s.
|
* 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},
|
* LEGACY compliance mode that models Jetty-9.4 behavior by allowing {@link Violation#AMBIGUOUS_PATH_SEGMENT},
|
||||||
|
|
|
@ -1812,13 +1812,18 @@ public class RequestTest
|
||||||
"Host: whatever\r\n" +
|
"Host: whatever\r\n" +
|
||||||
"\r\n";
|
"\r\n";
|
||||||
_connector.getBean(HttpConnectionFactory.class).getHttpConfiguration().setUriCompliance(UriCompliance.DEFAULT);
|
_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);
|
_connector.getBean(HttpConnectionFactory.class).getHttpConfiguration().setUriCompliance(UriCompliance.LEGACY);
|
||||||
assertThat(_connector.getResponse(request), startsWith("HTTP/1.1 200"));
|
assertThat(_connector.getResponse(request), startsWith("HTTP/1.1 200"));
|
||||||
_connector.getBean(HttpConnectionFactory.class).getHttpConfiguration().setUriCompliance(UriCompliance.RFC3986);
|
_connector.getBean(HttpConnectionFactory.class).getHttpConfiguration().setUriCompliance(UriCompliance.RFC3986);
|
||||||
assertThat(_connector.getResponse(request), startsWith("HTTP/1.1 200"));
|
assertThat(_connector.getResponse(request), startsWith("HTTP/1.1 200"));
|
||||||
_connector.getBean(HttpConnectionFactory.class).getHttpConfiguration().setUriCompliance(UriCompliance.UNSAFE);
|
_connector.getBean(HttpConnectionFactory.class).getHttpConfiguration().setUriCompliance(UriCompliance.UNSAFE);
|
||||||
assertThat(_connector.getResponse(request), startsWith("HTTP/1.1 200"));
|
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
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue