From 6575375537942236088d44eb3ed3473e7437aad8 Mon Sep 17 00:00:00 2001 From: dahn Date: Fri, 28 Jun 2024 15:32:19 +0200 Subject: [PATCH] extract host from websocket to add route (#8922) * extract host from websocket to add route * move method to NetUtils * imports * import --- .../java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java | 2 ++ utils/src/main/java/com/cloud/utils/net/NetUtils.java | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java b/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java index cfa62114c3d..05063e0f861 100644 --- a/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java +++ b/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java @@ -16,6 +16,7 @@ // under the License. package com.cloud.consoleproxy; +import com.cloud.utils.net.NetUtils; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.eclipse.jetty.websocket.api.Session; @@ -284,6 +285,7 @@ public class ConsoleProxyNoVncClient implements ConsoleProxyClient { try { if (StringUtils.isNotBlank(websocketUrl)) { s_logger.info(String.format("Connect to VNC over websocket URL: %s", websocketUrl)); + ConsoleProxy.ensureRoute(NetUtils.extractHost(websocketUrl)); client.connectToWebSocket(websocketUrl, session); } else if (tunnelUrl != null && !tunnelUrl.isEmpty() && tunnelSession != null && !tunnelSession.isEmpty()) { diff --git a/utils/src/main/java/com/cloud/utils/net/NetUtils.java b/utils/src/main/java/com/cloud/utils/net/NetUtils.java index 018912a2140..91a2f4eb755 100644 --- a/utils/src/main/java/com/cloud/utils/net/NetUtils.java +++ b/utils/src/main/java/com/cloud/utils/net/NetUtils.java @@ -30,6 +30,7 @@ import java.net.InterfaceAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.URI; +import java.net.URISyntaxException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Arrays; @@ -98,6 +99,10 @@ public class NetUtils { public final static int IPV6_EUI64_11TH_BYTE = -1; public final static int IPV6_EUI64_12TH_BYTE = -2; + public static String extractHost(String uri) throws URISyntaxException { + return (new URI(uri)).getHost(); + } + public enum InternetProtocol { IPv4, IPv6, DualStack;