You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2022/11/13 11:30:44 UTC
[httpcomponents-client] 03/03: HTTPCLIENT-2247: Test cases to document present assumptions about the correct handling of public domain suffixes
This is an automated email from the ASF dual-hosted git repository.
olegk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git
commit 0ca56358984a20eb2403b8db30ec074e4db5c77e
Author: Oleg Kalnichevski <ol...@apache.org>
AuthorDate: Sat Nov 12 16:56:18 2022 +0100
HTTPCLIENT-2247: Test cases to document present assumptions about the correct handling of public domain suffixes
---
.../client5/http/psl/TestPublicSuffixMatcher.java | 2 ++
.../http/ssl/TestDefaultHostnameVerifier.java | 32 +++++++++++++++++++++-
.../src/test/resources/suffixlistmatcher.txt | 6 ++++
3 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/psl/TestPublicSuffixMatcher.java b/httpclient5/src/test/java/org/apache/hc/client5/http/psl/TestPublicSuffixMatcher.java
index 03d5b5c86..25ba0f299 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/psl/TestPublicSuffixMatcher.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/psl/TestPublicSuffixMatcher.java
@@ -72,6 +72,8 @@ public class TestPublicSuffixMatcher {
Assertions.assertEquals("garbage", matcher.getDomainRoot("garbage.garbage"));
Assertions.assertEquals("garbage", matcher.getDomainRoot("*.garbage.garbage"));
Assertions.assertEquals("garbage", matcher.getDomainRoot("*.garbage.garbage.garbage"));
+
+ Assertions.assertEquals("*.compute-1.amazonaws.com", matcher.getDomainRoot("*.compute-1.amazonaws.com"));
}
@Test
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/ssl/TestDefaultHostnameVerifier.java b/httpclient5/src/test/java/org/apache/hc/client5/http/ssl/TestDefaultHostnameVerifier.java
index 67ae939d3..a38b85f6e 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/ssl/TestDefaultHostnameVerifier.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/ssl/TestDefaultHostnameVerifier.java
@@ -254,6 +254,18 @@ public class TestDefaultHostnameVerifier {
Assertions.assertFalse(DefaultHostnameVerifier.matchIdentity("a.b.c", "*.*.c"));
Assertions.assertFalse(DefaultHostnameVerifier.matchIdentityStrict("a.b.c", "*.*.c"));
+
+ Assertions.assertTrue(DefaultHostnameVerifier.matchIdentity("a.b.xxx.uk", "a.b.xxx.uk", publicSuffixMatcher));
+ Assertions.assertTrue(DefaultHostnameVerifier.matchIdentityStrict("a.b.xxx.uk", "a.b.xxx.uk", publicSuffixMatcher));
+
+ Assertions.assertTrue(DefaultHostnameVerifier.matchIdentity("a.b.xxx.uk", "*.b.xxx.uk", publicSuffixMatcher));
+ Assertions.assertTrue(DefaultHostnameVerifier.matchIdentityStrict("a.b.xxx.uk", "*.b.xxx.uk", publicSuffixMatcher));
+
+ Assertions.assertTrue(DefaultHostnameVerifier.matchIdentity("b.xxx.uk", "b.xxx.uk", publicSuffixMatcher));
+ Assertions.assertTrue(DefaultHostnameVerifier.matchIdentityStrict("b.xxx.uk", "b.xxx.uk", publicSuffixMatcher));
+
+ Assertions.assertFalse(DefaultHostnameVerifier.matchIdentity("b.xxx.uk", "*.xxx.uk", publicSuffixMatcher));
+ Assertions.assertFalse(DefaultHostnameVerifier.matchIdentityStrict("b.xxx.uk", "*.xxx.uk", publicSuffixMatcher));
}
@Test
@@ -426,6 +438,24 @@ public class TestDefaultHostnameVerifier {
"host.domain.com",
Collections.singletonList(SubjectName.DNS("some.other.com")),
publicSuffixMatcher));
+
+ DefaultHostnameVerifier.matchDNSName(
+ "host.ec2.compute-1.amazonaws.com",
+ Collections.singletonList(SubjectName.DNS("host.ec2.compute-1.amazonaws.com")),
+ publicSuffixMatcher);
+ DefaultHostnameVerifier.matchDNSName(
+ "host.ec2.compute-1.amazonaws.com",
+ Collections.singletonList(SubjectName.DNS("*.ec2.compute-1.amazonaws.com")),
+ publicSuffixMatcher);
+ DefaultHostnameVerifier.matchDNSName(
+ "ec2.compute-1.amazonaws.com",
+ Collections.singletonList(SubjectName.DNS("ec2.compute-1.amazonaws.com")),
+ publicSuffixMatcher);
+ Assertions.assertThrows(SSLException.class, () ->
+ DefaultHostnameVerifier.matchDNSName(
+ "ec2.compute-1.amazonaws.com",
+ Collections.singletonList(SubjectName.DNS("*.compute-1.amazonaws.com")),
+ publicSuffixMatcher));
}
-}
+}
\ No newline at end of file
diff --git a/httpclient5/src/test/resources/suffixlistmatcher.txt b/httpclient5/src/test/resources/suffixlistmatcher.txt
index e9377cb5f..5f82ba9a7 100644
--- a/httpclient5/src/test/resources/suffixlistmatcher.txt
+++ b/httpclient5/src/test/resources/suffixlistmatcher.txt
@@ -28,6 +28,12 @@ xx
lan
appspot.com
s3.eu-central-1.amazonaws.com
+*.compute.amazonaws.com
+*.compute-1.amazonaws.com
+*.compute.amazonaws.com.cn
+us-east-1.amazonaws.com
+*.xxx.uk
+
// ===END PRIVATE DOMAINS===
// ===BEGIN ICANN DOMAINS===