Skip to content

Commit 8831f15

Browse files
koust6umarkt-asf
authored andcommitted
clean up org.apache.tomcat.util.http RequestUtil (#818)
Cleanup RequestUtil with test case
1 parent 3171a0a commit 8831f15

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

java/org/apache/tomcat/util/http/RequestUtil.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -123,19 +123,12 @@ public static boolean isSameOrigin(HttpServletRequest request, String origin) {
123123
// Build scheme://host:port from request
124124
StringBuilder target = new StringBuilder();
125125
String scheme = request.getScheme();
126-
if (scheme == null) {
127-
return false;
128-
} else {
129-
scheme = scheme.toLowerCase(Locale.ENGLISH);
130-
}
131-
target.append(scheme);
132-
target.append("://");
133-
134126
String host = request.getServerName();
135-
if (host == null) {
127+
if (scheme == null || host == null) {
136128
return false;
137129
}
138-
target.append(host);
130+
scheme = scheme.toLowerCase(Locale.ENGLISH);
131+
target.append(scheme).append("://").append(host);
139132

140133
int port = request.getServerPort();
141134
// Origin may or may not include the (default) port.
@@ -161,7 +154,7 @@ public static boolean isSameOrigin(HttpServletRequest request, String origin) {
161154

162155
// Both scheme and host are case-insensitive but the CORS spec states
163156
// this check should be case-sensitive
164-
return origin.equals(target.toString());
157+
return origin.contentEquals(target);
165158
}
166159

167160

test/org/apache/tomcat/util/http/TestRequestUtilSameOrigin.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ public static Collection<Object[]> parameters() {
4242
TesterRequest request2 = new TesterRequest("ws", "example.com", 80);
4343
TesterRequest request3 = new TesterRequest("http", "example.com", 443);
4444
TesterRequest request4 = new TesterRequest("http", "example.com", 8080);
45+
TesterRequest request5 = new TesterRequest(null, "example.com", 80);
46+
TesterRequest request6 = new TesterRequest("http", null, 8080);
4547

4648
parameterSets.add(new Object[] { request1, "http://example.com", Boolean.TRUE });
4749
parameterSets.add(new Object[] { request1, "http://example.com:80", Boolean.TRUE });
@@ -59,6 +61,14 @@ public static Collection<Object[]> parameters() {
5961
parameterSets.add(new Object[] { request4, "http://example.com:80", Boolean.FALSE });
6062
parameterSets.add(new Object[] { request4, "http://example.com:8080", Boolean.TRUE});
6163

64+
parameterSets.add(new Object[]{ request5, "http://example.com:80", Boolean.FALSE});
65+
parameterSets.add(new Object[]{ request5, "://example.com:80", Boolean.FALSE});
66+
parameterSets.add(new Object[]{ request5, "example.com:80", Boolean.FALSE});
67+
68+
parameterSets.add(new Object[]{ request6, "http://example.com:80", Boolean.FALSE});
69+
parameterSets.add(new Object[]{ request6, "http://:80", Boolean.FALSE});
70+
parameterSets.add(new Object[]{ request6, "http://", Boolean.FALSE});
71+
6272
return parameterSets;
6373
}
6474

0 commit comments

Comments
 (0)