Skip to content

Commit 5b751ba

Browse files
committed
Fixes: gh-5190
1 parent ec9ab19 commit 5b751ba

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

web/src/main/java/org/springframework/security/web/firewall/StrictHttpFirewall.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ private static boolean containsOnlyPrintableAsciiCharacters(String uri) {
314314
int length = uri.length();
315315
for (int i = 0; i < length; i++) {
316316
char c = uri.charAt(i);
317-
if (c < '\u0021' || '\u007e' < c) {
317+
if (c < '\u0020' || c > '\u007e') {
318318
return false;
319319
}
320320
}

web/src/test/java/org/springframework/security/web/firewall/StrictHttpFirewallTests.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,30 @@ public void getFirewalledRequestWhenAllowEncodedPeriodAndEncodedPeriodInThenNoEx
297297
this.firewall.getFirewalledRequest(this.request);
298298
}
299299

300+
@Test(expected = RequestRejectedException.class)
301+
public void getFirewalledRequestWhenExceedsLowerboundAsciiThenException() {
302+
this.request.setRequestURI("/\u0019");
303+
this.firewall.getFirewalledRequest(this.request);
304+
}
305+
306+
@Test
307+
public void getFirewalledRequestWhenContainsLowerboundAsciiThenNoException() {
308+
this.request.setRequestURI("/ ");
309+
this.firewall.getFirewalledRequest(this.request);
310+
}
311+
312+
@Test
313+
public void getFirewalledRequestWhenContainsUpperboundAsciiThenNoException() {
314+
this.request.setRequestURI("/~");
315+
this.firewall.getFirewalledRequest(this.request);
316+
}
317+
318+
@Test(expected = RequestRejectedException.class)
319+
public void getFirewalledRequestWhenExceedsUpperboundAsciiThenException() {
320+
this.request.setRequestURI("/\u007f");
321+
this.firewall.getFirewalledRequest(this.request);
322+
}
323+
300324
// --- from DefaultHttpFirewallTests ---
301325

302326
/**

0 commit comments

Comments
 (0)