From 705119d15a6776753ca9deb5d08eca8c9ee938d0 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Wed, 10 Jul 2019 11:30:05 +0200 Subject: [PATCH] openvidu-server: check websocket uris to its own method --- .../io/openvidu/server/config/OpenviduConfig.java | 13 +++++++++++++ .../java/io/openvidu/server/kurento/kms/Kms.java | 10 ++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) 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; }