You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2018/05/12 17:58:17 UTC
svn commit: r1831486 - in /tomcat/trunk:
java/org/apache/tomcat/util/http/parser/HttpParser.java
java/org/apache/tomcat/util/http/parser/LocalStrings.properties
test/org/apache/tomcat/util/http/parser/TestHttpParserHost.java
Author: markt
Date: Sat May 12 17:58:17 2018
New Revision: 1831486
URL: http://svn.apache.org/viewvc?rev=1831486&view=rev
Log:
Better error message when segment / domain name ends in an invalid state.
Add an additional test case and remove debug code added in previous commit.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java
tomcat/trunk/java/org/apache/tomcat/util/http/parser/LocalStrings.properties
tomcat/trunk/test/org/apache/tomcat/util/http/parser/TestHttpParserHost.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java?rev=1831486&r1=1831485&r2=1831486&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java Sat May 12 17:58:17 2018
@@ -901,8 +901,14 @@ public class HttpParser {
allowsEnd == AllowsEnd.FIRST && segmentIndex == 0) {
return END;
} else {
- throw new IllegalArgumentException(sm.getString("http.invalidCharacterDomain",
- Character.toString((char) c), errorLocation));
+ String msg;
+ if (allowsEnd == AllowsEnd.NEVER) {
+ msg = sm.getString("http.invalidSegmentEndState", this.name());
+ } else {
+ // allowsEnd == AllowsEnd.FIRST && segmentIndex > 0
+ msg = sm.getString("http.invalidEndState", this.name());
+ }
+ throw new IllegalArgumentException(msg);
}
} else if (c == '-') {
if (allowsHyphen) {
Modified: tomcat/trunk/java/org/apache/tomcat/util/http/parser/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/parser/LocalStrings.properties?rev=1831486&r1=1831485&r2=1831486&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/parser/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/parser/LocalStrings.properties Sat May 12 17:58:17 2018
@@ -26,9 +26,11 @@ http.illegalCharacterDomain=The characte
http.illegalCharacterIpv4=The character [{0}] is never valid in an IPv4 address.
http.illegalCharacterIpv6=The character [{0}] is never valid in an IPv6 address.
http.invalidCharacterDomain=The character [{0}] is not valid{1} a domain name.
+http.invalidEndState=The state [{0}] is not valid for the end of a domain name.
http.invalidHextet=Invalid hextet. A hextet must consist of 4 or less hex characters.
http.invalidIpv4Location=The IPv6 address contains an embedded IPv4 address at an invalid location.
http.invalidOctet=Invalid octet [{0}]. The valid range for IPv4 octets is 0 to 255.
+http.invalidSegmentEndState=The state [{0}] is not valid for the end of a segment.
http.noClosingBracket=The IPv6 address is missing a closing bracket.
http.noOpeningBracket=The IPv6 address is missing an opening bracket.
http.singleColonEnd=An IPv6 address may not end with a single ':'.
Modified: tomcat/trunk/test/org/apache/tomcat/util/http/parser/TestHttpParserHost.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/parser/TestHttpParserHost.java?rev=1831486&r1=1831485&r2=1831486&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/http/parser/TestHttpParserHost.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/http/parser/TestHttpParserHost.java Sat May 12 17:58:17 2018
@@ -112,6 +112,7 @@ public class TestHttpParserHost {
result.add(new Object[] { TestType.IPv4, "0.0.0.0com", Integer.valueOf(-1), IAE} );
result.add(new Object[] { TestType.IPv4, "foo.bar.0com", Integer.valueOf(-1), IAE} );
result.add(new Object[] { TestType.IPv4, "foo.bar.0com:8080", Integer.valueOf(-1), IAE} );
+ result.add(new Object[] { TestType.IPv4, "myapp-t.my-domain.c-om", Integer.valueOf(-1), IAE} );
// IPv6 - valid
result.add(new Object[] { TestType.IPv6, "[::1]", Integer.valueOf(-1), null} );
result.add(new Object[] { TestType.IPv6, "[::1]:8080", Integer.valueOf(5), null} );
@@ -203,7 +204,6 @@ public class TestHttpParserHost {
}
} catch (Exception e) {
- e.printStackTrace();
exceptionClass = e.getClass();
}
Assert.assertEquals(input, expectedResult.intValue(), result);
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org