From 39ba8ebd2fe3e11c90427bbdda1ba7c4e6796503 Mon Sep 17 00:00:00 2001 From: Xin Date: Fri, 28 Jul 2023 08:48:51 +0700 Subject: [PATCH 1/4] added redis tls support --- .../swisspush/gateleen/playground/Server.java | 4 +++- .../gateleen/runconfig/RunConfig.java | 19 ++++++++++++++++++- .../org/swisspush/gateleen/AbstractTest.java | 4 +++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java b/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java index 80759ecd..b53d5a78 100755 --- a/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java +++ b/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java @@ -181,13 +181,15 @@ public void start() { String redisHost = (String) props.get("redis.host"); Integer redisPort = (Integer) props.get("redis.port"); + Boolean redisEnableTls = (Boolean) props.get("redis.enableTls"); props.put(ExpansionHandler.MAX_EXPANSION_LEVEL_HARD_PROPERTY, "100"); props.put(ExpansionHandler.MAX_EXPANSION_LEVEL_SOFT_PROPERTY, "50"); RunConfig.deployModules(vertx, Server.class, props, success -> { if (success) { - redisClient = new RedisClient(vertx, new RedisOptions().setConnectionString("redis://" + redisHost + ":" + redisPort)); + String protocol = redisEnableTls ? "rediss://" : "redis://"; + redisClient = new RedisClient(vertx, new RedisOptions().setConnectionString(protocol + redisHost + ":" + redisPort)); redisApi = RedisAPI.api(redisClient); RedisProvider redisProvider = () -> Future.succeededFuture(redisApi); diff --git a/gateleen-runconfig/src/main/java/org/swisspush/gateleen/runconfig/RunConfig.java b/gateleen-runconfig/src/main/java/org/swisspush/gateleen/runconfig/RunConfig.java index 4d6e273b..dcb44154 100755 --- a/gateleen-runconfig/src/main/java/org/swisspush/gateleen/runconfig/RunConfig.java +++ b/gateleen-runconfig/src/main/java/org/swisspush/gateleen/runconfig/RunConfig.java @@ -382,9 +382,17 @@ public RunConfig build(Vertx vertx, RedisProvider redisProvider, Class verticleC * Builds redis properties configuration. */ public static Map buildRedisProps(String redisHost, int redisPort) { + return buildRedisProps(redisHost, redisPort, false); + } + + /** + * Builds redis properties configuration. + */ + public static Map buildRedisProps(String redisHost, int redisPort, boolean redisEnableTls) { final Map props = new HashMap<>(); props.put("redis.host", redisHost); props.put("redis.port", redisPort); + props.put("redis.enableTls", redisEnableTls); props.put("redis.encoding", "UTF-8"); return props; } @@ -393,9 +401,17 @@ public static Map buildRedisProps(String redisHost, int redisPor * Builds a standard mod redis configuration. */ public static JsonObject buildModRedisConfig(String redisHost, int redisPort) { + return buildModRedisConfig(redisHost, redisPort, false); + } + + /** + * Builds a standard mod redis configuration. + */ + public static JsonObject buildModRedisConfig(String redisHost, int redisPort, boolean redisEnableTls) { JsonObject config = new JsonObject(); config.put("host", redisHost); config.put("port", redisPort); + config.put("enableTls", redisEnableTls); config.put("encoding", "UTF-8"); return config; } @@ -480,7 +496,8 @@ public static void deployModules(final Vertx vertx, Class verticleClass, Map { diff --git a/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java b/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java index 5aea9381..466f8e12 100755 --- a/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java +++ b/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java @@ -135,13 +135,15 @@ public static void setupBeforeClass(TestContext context) { String redisHost = (String) props.get("redis.host"); Integer redisPort = (Integer) props.get("redis.port"); + Boolean redisEnableTls = (Boolean) props.get("redis.enableTls"); props.put(ExpansionHandler.MAX_EXPANSION_LEVEL_HARD_PROPERTY, "100"); props.put(ExpansionHandler.MAX_EXPANSION_LEVEL_SOFT_PROPERTY, "4"); RunConfig.deployModules(vertx, AbstractTest.class, props, success -> { if (success) { - RedisClient redisClient = new RedisClient(vertx, new RedisOptions().setConnectionString("redis://" + redisHost + ":" + redisPort)); + String protocol = redisEnableTls ? "rediss://" : "redis://"; + RedisClient redisClient = new RedisClient(vertx, new RedisOptions().setConnectionString(protocol + redisHost + ":" + redisPort)); RedisAPI redisAPI = RedisAPI.api(redisClient); RedisProvider redisProvider = () -> Future.succeededFuture(redisAPI); From 094e64030ac4ab2485ec4602444dad8f737e179a Mon Sep 17 00:00:00 2001 From: Xin Date: Tue, 1 Aug 2023 11:17:51 +0700 Subject: [PATCH 2/4] fixed Chromedriver version to '114.0.5735.90' --- .github/workflows/maven.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index adad66b4..b41d4d73 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -33,7 +33,10 @@ jobs: - name: Install chromedriver uses: nanasess/setup-chromedriver@v1.1.0 - + with: + # Optional: do not specify to match Chrome's version + chromedriver-version: '114.0.5735.90' + - name: Install, unit test run: mvn install -Dmaven.javadoc.skip=true -PpublicRepos -B -V From a2956b83e054204b11f6200747c94a7d9a1a5302 Mon Sep 17 00:00:00 2001 From: Xin Date: Thu, 3 Aug 2023 08:55:33 +0700 Subject: [PATCH 3/4] check null before convert it to boolean, and use parameterized logging --- .../main/java/org/swisspush/gateleen/playground/Server.java | 2 +- .../main/java/org/swisspush/gateleen/runconfig/RunConfig.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java b/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java index b53d5a78..426357ec 100755 --- a/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java +++ b/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java @@ -181,7 +181,7 @@ public void start() { String redisHost = (String) props.get("redis.host"); Integer redisPort = (Integer) props.get("redis.port"); - Boolean redisEnableTls = (Boolean) props.get("redis.enableTls"); + boolean redisEnableTls = props.get("redis.enableTls") != null ? (Boolean) props.get("redis.enableTls") : false; props.put(ExpansionHandler.MAX_EXPANSION_LEVEL_HARD_PROPERTY, "100"); props.put(ExpansionHandler.MAX_EXPANSION_LEVEL_SOFT_PROPERTY, "50"); diff --git a/gateleen-runconfig/src/main/java/org/swisspush/gateleen/runconfig/RunConfig.java b/gateleen-runconfig/src/main/java/org/swisspush/gateleen/runconfig/RunConfig.java index dcb44154..c5e9c593 100755 --- a/gateleen-runconfig/src/main/java/org/swisspush/gateleen/runconfig/RunConfig.java +++ b/gateleen-runconfig/src/main/java/org/swisspush/gateleen/runconfig/RunConfig.java @@ -496,8 +496,8 @@ public static void deployModules(final Vertx vertx, Class verticleClass, Map { From 581298262a0dca8f7d5e03b7ebffe9acbb70c1b0 Mon Sep 17 00:00:00 2001 From: Xin Date: Thu, 3 Aug 2023 09:03:09 +0700 Subject: [PATCH 4/4] check null before convert it to boolean (Test) --- .../src/test/java/org/swisspush/gateleen/AbstractTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java b/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java index 466f8e12..93a3562f 100755 --- a/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java +++ b/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java @@ -135,7 +135,7 @@ public static void setupBeforeClass(TestContext context) { String redisHost = (String) props.get("redis.host"); Integer redisPort = (Integer) props.get("redis.port"); - Boolean redisEnableTls = (Boolean) props.get("redis.enableTls"); + boolean redisEnableTls = props.get("redis.enableTls") != null ? (Boolean) props.get("redis.enableTls") : false; props.put(ExpansionHandler.MAX_EXPANSION_LEVEL_HARD_PROPERTY, "100"); props.put(ExpansionHandler.MAX_EXPANSION_LEVEL_SOFT_PROPERTY, "4");