From a4eead50a0775d23caaec5d9ffd1e92b7f800b64 Mon Sep 17 00:00:00 2001 From: xgc Date: Thu, 25 Jan 2024 10:39:40 +0800 Subject: [PATCH] =?UTF-8?q?starter=E9=85=8D=E7=BD=AE=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E8=B7=B3=E6=9D=BF=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/starter/config/SpringProxyConfig.java | 5 +++++ .../client/starter/core/ProxyClientService.java | 7 +++++++ .../client/starter/ssh/SSHConnectionService.java | 1 + .../client/starter/ssh/SSHConnectionServiceImpl.java | 7 +++++++ 4 files changed, 20 insertions(+) diff --git a/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/SpringProxyConfig.java b/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/SpringProxyConfig.java index ae728fb1..ff4b43aa 100644 --- a/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/SpringProxyConfig.java +++ b/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/SpringProxyConfig.java @@ -1,9 +1,12 @@ package org.dromara.neutrinoproxy.client.starter.config; import lombok.Data; +import org.dromara.neutrinoproxy.client.starter.ssh.SSHProxy; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; +import java.util.List; + /** * * @author: gc.x @@ -14,9 +17,11 @@ import org.springframework.stereotype.Component; @Component public class SpringProxyConfig { private Boolean enable=false; + private Boolean sshEnable=false; private Protocol protocol; private Tunnel tunnel; private Client client; + private List sshProxys; @Data public static class Protocol { diff --git a/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/core/ProxyClientService.java b/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/core/ProxyClientService.java index 185716cf..8185de00 100644 --- a/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/core/ProxyClientService.java +++ b/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/core/ProxyClientService.java @@ -5,6 +5,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.neutrinoproxy.client.sdk.config.ProxyConfig; import org.dromara.neutrinoproxy.client.starter.config.ProxyConfiguration; import org.dromara.neutrinoproxy.client.starter.config.SpringProxyConfig; +import org.dromara.neutrinoproxy.client.starter.ssh.SSHConnectionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; @@ -31,5 +32,11 @@ public class ProxyClientService implements ApplicationRunner { proxyConfiguration.start(proxyConfig); log.info("start success!"); } + if(springProxyConfig.getSshEnable()){ + springProxyConfig.getSshProxys().forEach(sshProxy -> { + String sshId = SSHConnectionFactory.factory.addConnection(sshProxy); + SSHConnectionFactory.factory.openTunnel(sshId); + }); + } } } diff --git a/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/ssh/SSHConnectionService.java b/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/ssh/SSHConnectionService.java index 76007126..3fde7e55 100644 --- a/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/ssh/SSHConnectionService.java +++ b/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/ssh/SSHConnectionService.java @@ -7,6 +7,7 @@ package org.dromara.neutrinoproxy.client.starter.ssh; */ public interface SSHConnectionService { String addConnection(String host, String username, String password, int localPort, int remotePort,String remoteHost); + String addConnection(SSHProxy sshProxy); void openTunnel(String sshId); void closeTunnel(String sshId); void closeAllTunnels(); diff --git a/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/ssh/SSHConnectionServiceImpl.java b/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/ssh/SSHConnectionServiceImpl.java index b5f38f60..fb12874e 100644 --- a/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/ssh/SSHConnectionServiceImpl.java +++ b/client+/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/ssh/SSHConnectionServiceImpl.java @@ -32,6 +32,13 @@ public class SSHConnectionServiceImpl implements SSHConnectionService { connections.put(connection.getSshId(), connection); return sshId; } + @Override + public String addConnection(SSHProxy sshProxy) { + String sshId = UUID.randomUUID().toString(); + sshProxy.setSshId(sshId); + connections.put(sshProxy.getSshId(), sshProxy); + return sshId; + } @Override public void openTunnel(String sshId) {