From 9316d8b79873ab4f4e5a56acdcfd5e18a92f5dba Mon Sep 17 00:00:00 2001
From: Daniel Gultsch <daniel@gultsch.de>
Date: Wed, 27 Jan 2021 21:27:47 +0100
Subject: [PATCH] make sure provider verification has no unaccepted null values

---
 config.example.json                           | 50 +++++++++++++++++++
 config.json.example                           | 31 ------------
 .../server/configuration/Configuration.java   |  2 +-
 .../MetaVerificationProvider.java             |  4 +-
 4 files changed, 53 insertions(+), 34 deletions(-)
 create mode 100644 config.example.json
 delete mode 100644 config.json.example

diff --git a/config.example.json b/config.example.json
new file mode 100644
index 0000000..42af8c6
--- /dev/null
+++ b/config.example.json
@@ -0,0 +1,50 @@
+{
+  "domain": "quicksy.im",
+  "validate_phone_numbers": true,
+  "prevent_registration": false,
+  "min_version": "2.3.0",
+  "account_inactivity": "P28D",
+  "xmpp": {
+    "jid": "api.quicksy.im",
+    "secret": "…"
+  },
+  "web": {
+    "host": "127.0.0.1",
+    "port": 4567
+  },
+  "db": {
+    "ejabberd": {
+      "url": "jdbc:mariadb://localhost:3306/ejabberd?characterEncoding=utf8",
+      "username": "…",
+      "password": "…"
+    },
+    "quicksy": {
+      "url": "jdbc:mariadb://localhost:3306/quicksy?characterEncoding=utf8",
+      "username": "…",
+      "password": "…"
+    }
+  },
+  "provider": {
+    "im.quicksy.server.verification.NexmoVerificationProvider": {
+      "deny": [
+        91
+      ],
+      "parameter": {
+        "api_key": "…",
+        "api_secret": "…",
+        "phone_number": "…"
+      }
+    },
+    "im.quicksy.server.verification.TwilioVerificationProvider": {
+      "parameter": {
+        "auth_token": "…"
+      }
+    }
+  },
+  "pay_pal": {
+    "username": "…",
+    "password": "…",
+    "signature": "…"
+  },
+  "cim_auth_token": "…"
+}
diff --git a/config.json.example b/config.json.example
deleted file mode 100644
index 9486d8a..0000000
--- a/config.json.example
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-    "domain": "quicksy.im",
-    "twilio_auth_token": "***",
-    "validate_phone_numbers": true,
-    "min_version": "2.3.0",
-    "account_inactivity": "P28D",
-    "xmpp": {
-        "jid": "api.quicksy.im",
-        "secret": "***"
-    },
-    "web": {
-        "host": "127.0.0.1",
-        "port": 4567
-    },
-    "db": {
-        "ejabberd" : {
-            "url": "jdbc:mariadb://localhost:3306/ejabberd?characterEncoding=utf8"
-            "username": "***",
-            "password": "***"
-        },
-        "quicksy" : {
-            "url": "jdbc:mariadb://localhost:3306/quicksy?characterEncoding=utf8"
-        }
-    },
-    "pay_pal": {
-        "username": "***",
-        "password": "***",
-        "signature": "***"
-    },
-    "cim_auth_token": "***"
-}
diff --git a/src/main/java/im/quicksy/server/configuration/Configuration.java b/src/main/java/im/quicksy/server/configuration/Configuration.java
index 857f4db..a78c3c0 100644
--- a/src/main/java/im/quicksy/server/configuration/Configuration.java
+++ b/src/main/java/im/quicksy/server/configuration/Configuration.java
@@ -227,7 +227,7 @@ public class Configuration {
         }
 
         public List<Integer> getDeny() {
-            return deny;
+            return deny == null ? Collections.emptyList() : deny;
         }
     }
 }
diff --git a/src/main/java/im/quicksy/server/verification/MetaVerificationProvider.java b/src/main/java/im/quicksy/server/verification/MetaVerificationProvider.java
index 1068f6c..12bd3d9 100644
--- a/src/main/java/im/quicksy/server/verification/MetaVerificationProvider.java
+++ b/src/main/java/im/quicksy/server/verification/MetaVerificationProvider.java
@@ -85,8 +85,8 @@ public class MetaVerificationProvider implements VerificationProvider {
         private final AbstractVerificationProvider provider;
 
         private ProviderWrapper(List<Integer> deny, AbstractVerificationProvider provider) {
-            this.deny = deny;
-            this.provider = provider;
+            this.deny = Preconditions.checkNotNull(deny);
+            this.provider = Preconditions.checkNotNull(provider);
         }
     }
 }
-- 
GitLab