From 1c1fdd8791951bcee5bd1e8c6af08aa6fd101382 Mon Sep 17 00:00:00 2001 From: Sina Madani Date: Mon, 20 Jan 2025 14:16:38 +0000 Subject: [PATCH] Improve HttpConfig.sanitizeUri --- src/main/java/com/vonage/client/HttpConfig.java | 7 ++++--- src/test/java/com/vonage/client/HttpConfigTest.java | 7 +++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/vonage/client/HttpConfig.java b/src/main/java/com/vonage/client/HttpConfig.java index 6f1f56d0a..7455c92c1 100644 --- a/src/main/java/com/vonage/client/HttpConfig.java +++ b/src/main/java/com/vonage/client/HttpConfig.java @@ -185,10 +185,11 @@ public static class Builder { public Builder() {} private String sanitizeUri(String uri) { - if (uri != null && uri.endsWith("/")) { - return uri.substring(0, uri.length() - 1); + String sanitized = Objects.requireNonNull(uri, "URI must not be null"); + if (sanitized.endsWith("/")) { + sanitized = sanitized.substring(0, sanitized.length() - 1); } - return uri; + return URI.create(sanitized).toString(); } /** diff --git a/src/test/java/com/vonage/client/HttpConfigTest.java b/src/test/java/com/vonage/client/HttpConfigTest.java index cb4df09a1..22689b6fe 100644 --- a/src/test/java/com/vonage/client/HttpConfigTest.java +++ b/src/test/java/com/vonage/client/HttpConfigTest.java @@ -100,6 +100,13 @@ public void testAllBaseUri() { config.getRegionalBaseUri(ApiRegion.API_EU) ); assertEquals("https://api-ap.example.com", config.getRegionalBaseUri(ApiRegion.API_AP).toString()); + + assertThrows(NullPointerException.class, () -> + HttpConfig.builder().baseUri((String) null).build() + ); + assertThrows(IllegalArgumentException.class, () -> + HttpConfig.builder().baseUri("*&^%$£;@not-a_'u(R)L").build() + ); } @Test