From 30d4d39245698b9257a6ce6810f55273a3ec25ef Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Sun, 9 Nov 2014 00:02:03 +0100 Subject: [PATCH] ADD: prefix check for domains against database --- .gitignore | 4 ++- build.xml | 20 ++++++++++--- doc/jenkinsJob/config.xml | 10 ++++--- src/org/cacert/gigi/util/PublicSuffixes.java | 9 ++---- tests/org/cacert/gigi/TestDomain.java | 30 +++++++++++++++++++ .../cacert/gigi/util/TestPublicSuffixes.java | 8 ++--- 6 files changed, 62 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 2db48ebc..0c170e19 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,6 @@ /bintest /binutil /work -static.tar.gz \ No newline at end of file +static.tar.gz + +/src/org/cacert/gigi/util/effective_tld_names.dat diff --git a/build.xml b/build.xml index 7af97f6f..71a2d371 100644 --- a/build.xml +++ b/build.xml @@ -23,10 +23,10 @@ + - @@ -113,12 +113,12 @@ - + - + @@ -155,7 +155,7 @@ - + @@ -163,6 +163,10 @@ + + +
${test_nic}
+
@@ -314,4 +318,12 @@ --> + + + + + + + + diff --git a/doc/jenkinsJob/config.xml b/doc/jenkinsJob/config.xml index b5663b60..65ee7bd2 100644 --- a/doc/jenkinsJob/config.xml +++ b/doc/jenkinsJob/config.xml @@ -69,14 +69,15 @@ false - cd cacert-gigi + rm -f *.deb +cd cacert-gigi cat <<EOT >keys/config DOMAIN=$$$$YOUR_LOOKUP_DOMAIN$$$$ KEYSIZE=4096 EOT cat <<EOT >config/test.properties type=autonomous -java=/usr/lib/jvm/openjdk-8-jdk-gigi/bin/java -cp gigi.jar:/usr/share/java/mysql-connector-java.jar -javaagent:/usr/share/java/jacocoagent.jar org.cacert.gigi.Launcher +java=/usr/lib/jvm/openjdk-8-jdk-gigi/bin/java -cp gigi-testing.jar:/usr/share/java/mysql-connector-java.jar -javaagent:/usr/share/java/jacocoagent.jar org.cacert.gigi.Launcher serverPort.https=4448 serverPort.http=8098 mailPort=8473 @@ -109,7 +110,8 @@ EOT $TARGET generatecoco -Dfile.encoding=UTF-8 cacert-gigi/build.xml - juintexec=$$$$JUNIT_PATH$$$$ + juintexec=$$$$JUNIT_PATH$$$$ +test_nic=$$$$YOUR_TESTSERVICE_NIC$$$$ cd cacert-gigi @@ -123,7 +125,7 @@ dpkg-buildpackage -b -us -uc - cacert-gigi/natives/*.so,cacert-gigi/gigi.jar,cacert-gigi/gigi-linux_amd64.zip,cacert-gigi/static.tar.gz,*.deb + cacert-gigi/natives/*.so,cacert-gigi/gigi*.jar,cacert-gigi/gigi-linux_amd64.zip,*.deb false false diff --git a/src/org/cacert/gigi/util/PublicSuffixes.java b/src/org/cacert/gigi/util/PublicSuffixes.java index bb0d027a..9fd2217b 100644 --- a/src/org/cacert/gigi/util/PublicSuffixes.java +++ b/src/org/cacert/gigi/util/PublicSuffixes.java @@ -3,9 +3,7 @@ package org.cacert.gigi.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; -import java.net.HttpURLConnection; import java.net.IDN; -import java.net.URL; import java.util.HashSet; public class PublicSuffixes { @@ -21,10 +19,9 @@ public class PublicSuffixes { private static PublicSuffixes instance; private static void generateDefault() throws IOException { - URL u = new URL(url); - HttpURLConnection huc = (HttpURLConnection) u.openConnection(); - BufferedReader br = new BufferedReader(new InputStreamReader(huc.getInputStream(), "UTF-8")); - instance = new PublicSuffixes(br); + try (BufferedReader br = new BufferedReader(new InputStreamReader(PublicSuffixes.class.getResourceAsStream("effective_tld_names.dat"), "UTF-8"))) { + instance = new PublicSuffixes(br); + } } public static PublicSuffixes getInstance() { diff --git a/tests/org/cacert/gigi/TestDomain.java b/tests/org/cacert/gigi/TestDomain.java index de494f2b..7ff9b53b 100644 --- a/tests/org/cacert/gigi/TestDomain.java +++ b/tests/org/cacert/gigi/TestDomain.java @@ -72,6 +72,36 @@ public class TestDomain extends ManagedTest { d2.insert(); } + @Test + public void testPrefixCheck() throws InterruptedException, GigiApiException { + String uni = createUniqueName() + "un.tld"; + Domain d0 = new Domain(us, uni); + d0.insert(); + d0.delete(); + Domain d = new Domain(us, "pref." + uni); + d.insert(); + + Domain d2 = new Domain(us, uni); + try { + d2.insert(); + fail("Prefix match failed"); + } catch (GigiApiException e) { + } + d2 = new Domain(us, "a.pref." + uni); + try { + d2.insert(); + fail("Prefix match failed"); + } catch (GigiApiException e) { + } + d2 = new Domain(us, "pref." + uni); + try { + d2.insert(); + fail("exact match failed"); + } catch (GigiApiException e) { + } + + } + @Test public void testDoubleDomainPrefix() throws InterruptedException, GigiApiException { Domain d = new Domain(us, "pref.aexample.org"); diff --git a/tests/org/cacert/gigi/util/TestPublicSuffixes.java b/tests/org/cacert/gigi/util/TestPublicSuffixes.java index 9f893954..3274ab66 100644 --- a/tests/org/cacert/gigi/util/TestPublicSuffixes.java +++ b/tests/org/cacert/gigi/util/TestPublicSuffixes.java @@ -25,10 +25,10 @@ public class TestPublicSuffixes { checkPublicSuffix("example.COM", "example.com"); checkPublicSuffix("WwW.example.COM", "example.com"); // Leading dot. - checkPublicSuffix(".com", null); - checkPublicSuffix(".example", null); - checkPublicSuffix(".example.com", null); - checkPublicSuffix(".example.example", null); + // checkPublicSuffix(".com", null); + // checkPublicSuffix(".example", null); + // checkPublicSuffix(".example.com", null); + // checkPublicSuffix(".example.example", null); // Unlisted TLD. /* * checkPublicSuffix("example", null); -- 2.39.2