diff --git a/httpclient/src/test/java/org/apache/http/conn/ssl/TestHostnameVerifier.java b/httpclient/src/test/java/org/apache/http/conn/ssl/TestHostnameVerifier.java index e82b002c2..0c7e2b5d0 100644 --- a/httpclient/src/test/java/org/apache/http/conn/ssl/TestHostnameVerifier.java +++ b/httpclient/src/test/java/org/apache/http/conn/ssl/TestHostnameVerifier.java @@ -314,5 +314,24 @@ public void HTTPCLIENT_1097() { checkMatching(bhv, "s.a.b.c", cns, alt, false); // OK checkMatching(shv, "s.a.b.c", cns, alt, true); // subdomain not OK + + checkWildcard("s*.co.uk", false); // 2 character TLD, invalid 2TLD + checkWildcard("s*.gov.uk", false); // 2 character TLD, invalid 2TLD + checkWildcard("s*.gouv.uk", false); // 2 character TLD, invalid 2TLD + } + + // Helper + private void checkWildcard(String host, boolean isOK) { + Assert.assertTrue(host+" should be "+isOK, isOK==AbstractVerifier.acceptableCountryWildcard(host)); + } + + @Test + // Various checks of 2TLDs + public void testacceptableCountryWildcards() { + checkWildcard("*.co.org", true); // Not a 2 character TLD + checkWildcard("s*.co.org", true); // Not a 2 character TLD + checkWildcard("*.co.uk", false); // 2 character TLD, invalid 2TLD + checkWildcard("*.gov.uk", false); // 2 character TLD, invalid 2TLD + checkWildcard("*.gouv.uk", false); // 2 character TLD, invalid 2TLD } }