diff --git a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java index 909fbccc..9d78cdfc 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java +++ b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java @@ -394,6 +394,9 @@ public class OpenviduConfig { Gson gson = new Gson(); JsonArray kmsUrisArray = gson.fromJson(kmsUris, JsonArray.class); this.kmsUrisList = JsonUtils.toStringList(kmsUrisArray); + for (String uri : kmsUrisList) { + this.checkWebsocketUri(uri); + } } public void initiateOpenViduWebhookEndpoint(String endpoint) throws Exception { @@ -451,4 +454,14 @@ public class OpenviduConfig { log.info("OpenVidu Webhook events: {}", this.getOpenViduWebhookEvents().toString()); } + public void checkWebsocketUri(String uri) throws MalformedURLException { + try { + String parsedUri = uri.replaceAll("^ws://", "http://").replaceAll("^wss://", "https://"); + new URL(parsedUri); + } catch (MalformedURLException e) { + log.error("URI {} is not a valid WebSocket endpoint", uri); + throw e; + } + } + } diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/Kms.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/Kms.java index a403317b..e7b6ede9 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/Kms.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/Kms.java @@ -68,13 +68,15 @@ public class Kms { this.uri = uri; this.id = "KMS-" + RandomStringUtils.randomAlphanumeric(6).toUpperCase(); + String parsedUri = uri.replaceAll("^ws://", "http://").replaceAll("^wss://", "https://"); + URL url = null; try { - String parsedUri = "http://" + uri.replaceAll("^ws://", "").replaceAll("^wss://", ""); - URL url = new URL(parsedUri); - this.ip = url.getHost(); + url = new URL(parsedUri); } catch (MalformedURLException e) { - log.error("KMS uri {} is not a valid WebSocket endpoint", uri); + log.error(e.getMessage()); } + this.ip = url.getHost(); + this.loadManager = loadManager; }