From 47318beb87803792cdd90c2b207e87fcc0afe713 Mon Sep 17 00:00:00 2001 From: xgc Date: Sun, 21 Jan 2024 17:54:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=81=E8=A3=85client-starter=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sdk/config/IProxyConfiguration.java | 6 +- .../sdk/handler/ProxyMessageFactory.java | 11 +- neutrino-proxy-client-starter/Dockerfile | 16 ++ neutrino-proxy-client-starter/pom.xml | 195 ++++++++++++++++++ .../client/starter/SpringProxyClient.java | 22 ++ .../starter/config/MainBusListeners.java | 19 ++ .../starter/config/ProxyConfiguration.java | 43 ++++ .../starter/config/SpringProxyConfig.java | 72 +++++++ .../starter/core/ProxyClientService.java | 33 +++ .../client/starter/handler/BeanHandler.java | 31 +++ .../starter/util/ApplicationContextUtils.java | 44 ++++ .../src/main/resources/application.yml | 52 +++++ .../src/main/resources/test.jks | Bin 0 -> 1388 bytes .../client/config/ProxyConfiguration.java | 9 +- .../src/main/resources/app.yml | 4 +- pom.xml | 1 + 16 files changed, 547 insertions(+), 11 deletions(-) create mode 100644 neutrino-proxy-client-starter/Dockerfile create mode 100644 neutrino-proxy-client-starter/pom.xml create mode 100644 neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/SpringProxyClient.java create mode 100644 neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/MainBusListeners.java create mode 100644 neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/ProxyConfiguration.java create mode 100644 neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/SpringProxyConfig.java create mode 100644 neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/core/ProxyClientService.java create mode 100644 neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/handler/BeanHandler.java create mode 100644 neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/util/ApplicationContextUtils.java create mode 100644 neutrino-proxy-client-starter/src/main/resources/application.yml create mode 100644 neutrino-proxy-client-starter/src/main/resources/test.jks diff --git a/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/config/IProxyConfiguration.java b/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/config/IProxyConfiguration.java index abe2a641..007eb8ba 100644 --- a/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/config/IProxyConfiguration.java +++ b/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/config/IProxyConfiguration.java @@ -180,8 +180,8 @@ public abstract class IProxyConfiguration { return bootstrap; } - public NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar() { - return new NeutrinoCoreRuntimeNativeRegistrar(); - } +// public NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar() { +// return new NeutrinoCoreRuntimeNativeRegistrar(); +// } } diff --git a/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/handler/ProxyMessageFactory.java b/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/handler/ProxyMessageFactory.java index b3240c99..7363810b 100644 --- a/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/handler/ProxyMessageFactory.java +++ b/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/handler/ProxyMessageFactory.java @@ -24,7 +24,7 @@ import java.util.List; public abstract class ProxyMessageFactory extends IProxyConfiguration { public abstract void beanInject(String beanName, Object t); - public abstract Object getBean(String beanName); + public abstract Object getBean(String beanName,Class c); public abstract void stop(); public abstract boolean isAotRuntime(); @@ -33,8 +33,8 @@ public abstract class ProxyMessageFactory extends IProxyConfiguration { init(proxyConfig); IAbProxyClientService clientService=new IAbProxyClientService(); clientService.setProxyConfig(proxyConfig); - clientService.setCmdTunnelBootstrap((Bootstrap) getBean("cmdTunnelBootstrap")); - clientService.setUdpServerBootstrap((Bootstrap) getBean("udpServerBootstrap")); + clientService.setCmdTunnelBootstrap((Bootstrap) getBean("cmdTunnelBootstrap",Bootstrap.class)); + clientService.setUdpServerBootstrap((Bootstrap) getBean("udpServerBootstrap",Bootstrap.class)); clientService.setIsAotRuntime(isAotRuntime()); clientService.init(); } @@ -42,6 +42,7 @@ public abstract class ProxyMessageFactory extends IProxyConfiguration { public void init(ProxyConfig proxyConfig){ NioEventLoopGroup tunnelWorkGroup = super.tunnelWorkGroup(proxyConfig); beanInject("tunnelWorkGroup",tunnelWorkGroup); + Object tunnelWorkGroup1 = getBean("tunnelWorkGroup",NioEventLoopGroup.class); NioEventLoopGroup tcpRealServerWorkGroup = super.tcpRealServerWorkGroup(proxyConfig); beanInject("tcpRealServerWorkGroup",tcpRealServerWorkGroup); NioEventLoopGroup udpServerGroup = super.udpServerGroup(proxyConfig); @@ -58,8 +59,8 @@ public abstract class ProxyMessageFactory extends IProxyConfiguration { beanInject("realServerBootstrap",realServerBootstrap); Bootstrap udpServerBootstrap = super.udpServerBootstrap(proxyConfig, udpServerGroup, udpWorkGroup); beanInject("udpServerBootstrap",udpServerBootstrap); - NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar = super.neutrinoCoreRuntimeNativeRegistrar(); - beanInject("neutrinoCoreRuntimeNativeRegistrar",neutrinoCoreRuntimeNativeRegistrar); +// NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar = super.neutrinoCoreRuntimeNativeRegistrar(); +// beanInject("neutrinoCoreRuntimeNativeRegistrar",neutrinoCoreRuntimeNativeRegistrar); dispatcher(proxyConfig, tcpProxyTunnelBootstrap, realServerBootstrap); } public void dispatcher(ProxyConfig proxyConfig, Bootstrap tcpProxyTunnelBootstrap, Bootstrap realServerBootstrap) { diff --git a/neutrino-proxy-client-starter/Dockerfile b/neutrino-proxy-client-starter/Dockerfile new file mode 100644 index 00000000..e2a41943 --- /dev/null +++ b/neutrino-proxy-client-starter/Dockerfile @@ -0,0 +1,16 @@ +FROM openjdk:21-jdk-oracle +#同步时间 +#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \ +# apk update && apk add wget unzip vim && apk add -U tzdata && \ +# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone +# 设置时区为北京时间 +ENV TZ=Asia/Shanghai +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +RUN mkdir -p /root/neutrino-proxy/config +WORKDIR /root/neutrino-proxy +COPY ./target/neutrino-proxy-client.jar /root/neutrino-proxy/neutrino-proxy-client.jar +COPY ./src/main/resources/app-copy.yml /root/neutrino-proxy/config/app.yml +#VOLUME ["/root/neutrino-proxy"] +ENTRYPOINT ["java","-jar","neutrino-proxy-client.jar","config=./config/app.yml"] + +#docker run -it -d --restart=always --name np_client -e SERVER_IP=127.0.0.1 diff --git a/neutrino-proxy-client-starter/pom.xml b/neutrino-proxy-client-starter/pom.xml new file mode 100644 index 00000000..ef3bebb2 --- /dev/null +++ b/neutrino-proxy-client-starter/pom.xml @@ -0,0 +1,195 @@ + + + + org.noear + solon-parent + 2.5.12 + + + 4.0.0 + io.github.javpower + neutrino-proxy-client-spring-boot-starter + ${revision} + jar + https://github.com/javpower/easy-proxy + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + https://github.com/javpower/easy-proxy + scm:git@github.com/javpower/easy-proxy.git + scm:git@github.com/javpower/easy-proxy.git + + + + gc.x + javpower@163.com + https://github.com/javpower + +8 + + + + 2.3.2 + 2.7.13 + 2.0.1 + + + + org.dromara.neutrino-proxy + neutrino-proxy-client-sdk + ${revision} + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + org.slf4j + slf4j-api + 1.7.36 + + + + ch.qos.logback + logback-classic + 1.2.12 + + + org.projectlombok + lombok + provided + + + net.dreamlu + mica-auto + ${mica-auto.vaersion} + provided + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + + + + ossrh + https://s01.oss.sonatype.org/content/repositories/snapshots + + + ossrh + https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + UTF-8 + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + com.gc.easy.EasyHttpApplication + true + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.7 + true + + ossrh + https://s01.oss.sonatype.org/ + true + + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9.1 + + private + true + UTF-8 + UTF-8 + UTF-8 + -Xdoclint:none + + + + package + + jar + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.5 + + + sign-artifacts + verify + + sign + + + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.8.2 + + + + + + diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/SpringProxyClient.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/SpringProxyClient.java new file mode 100644 index 00000000..082df470 --- /dev/null +++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/SpringProxyClient.java @@ -0,0 +1,22 @@ +package org.dromara.neutrinoproxy.client.starter; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @author: gc.x + * @date: 2024/1/21 + */ +@SpringBootApplication +@Slf4j +public class SpringProxyClient { + + public static void main(String[] args) { + SpringApplication.run(SpringProxyClient.class, args); + } + + + + +} diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/MainBusListeners.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/MainBusListeners.java new file mode 100644 index 00000000..7271ca2e --- /dev/null +++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/MainBusListeners.java @@ -0,0 +1,19 @@ +package org.dromara.neutrinoproxy.client.starter.config; + +import org.dromara.neutrinoproxy.client.starter.util.ApplicationContextUtils; +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.stereotype.Component; + +/** + * 启动监听 + * @author: gc.x + * @date: 2024/1/21 + */ +@Component +public class MainBusListeners implements ApplicationListener { + @Override + public void onApplicationEvent(ContextRefreshedEvent event) { + ApplicationContextUtils.setContext(event.getApplicationContext()); + } +} \ No newline at end of file diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/ProxyConfiguration.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/ProxyConfiguration.java new file mode 100644 index 00000000..4e33afec --- /dev/null +++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/ProxyConfiguration.java @@ -0,0 +1,43 @@ +package org.dromara.neutrinoproxy.client.starter.config; + +import org.dromara.neutrinoproxy.client.sdk.config.IBeanHandler; +import org.dromara.neutrinoproxy.client.sdk.handler.ProxyMessageFactory; +import org.dromara.neutrinoproxy.client.starter.handler.BeanHandler; +import org.dromara.neutrinoproxy.client.starter.util.ApplicationContextUtils; +import org.springframework.stereotype.Component; + + +/** + * 代理配置 + * @author: aoshiguchen + * @date: 2022/10/8 + */ +@Component +public class ProxyConfiguration extends ProxyMessageFactory { + + + @Override + public IBeanHandler getBeanHandler() { + return new BeanHandler(); + } + + @Override + public void beanInject(String beanName, Object bean) { + ApplicationContextUtils.addBean(beanName,bean); + } + + @Override + public Object getBean(String beanName,Class c) { + return ApplicationContextUtils.getBean(beanName,c); + } + + @Override + public void stop() { + ApplicationContextUtils.stop(); + } + + @Override + public boolean isAotRuntime() { + return false; + } +} diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/SpringProxyConfig.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/SpringProxyConfig.java new file mode 100644 index 00000000..dc3c9117 --- /dev/null +++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/SpringProxyConfig.java @@ -0,0 +1,72 @@ +package org.dromara.neutrinoproxy.client.starter.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * + * @author: gc.x + * @date: 2024/1/21 + */ +@Data +@ConfigurationProperties(prefix = "neutrino.proxy") +@Component +public class SpringProxyConfig { + private Protocol protocol; + private Tunnel tunnel; + private Client client; + + @Data + public static class Protocol { + private Integer maxFrameLength; + private Integer lengthFieldOffset; + private Integer lengthFieldLength; + private Integer initialBytesToStrip; + private Integer lengthAdjustment; + private Integer readIdleTime; + private Integer writeIdleTime; + private Integer allIdleTimeSeconds; + } + + @Data + public static class Tunnel { + private String keyStorePassword; + private String jksPath; + private String serverIp; + private Integer serverPort; + private Boolean sslEnable; + private Integer obtainLicenseInterval; + private String licenseKey; + private Integer threadCount; + private String clientId; + private Boolean transferLogEnable; + private Boolean heartbeatLogEnable; + private Reconnection reconnection; + } + + @Data + public static class Client { +// private Tcp tcp; + private Udp udp; + } + + @Data + public static class Reconnection { + private Integer intervalSeconds; + private Boolean unlimited; + } + + @Data + public static class Tcp { + + } + + @Data + public static class Udp { + private Integer bossThreadCount; + private Integer workThreadCount; + private String puppetPortRange; + private Boolean transferLogEnable; + } +} diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/core/ProxyClientService.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/core/ProxyClientService.java new file mode 100644 index 00000000..dea7bb83 --- /dev/null +++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/core/ProxyClientService.java @@ -0,0 +1,33 @@ +package org.dromara.neutrinoproxy.client.starter.core; + +import cn.hutool.core.bean.BeanUtil; +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.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +/** + * 代理客户端服务 + * @author: gc.x + * @date: 2024/1/21 + */ +@Slf4j +@Component +public class ProxyClientService implements ApplicationRunner { + + @Autowired + private ProxyConfiguration proxyConfiguration; + @Autowired + private SpringProxyConfig springProxyConfig; + @Override + public void run(ApplicationArguments args) { + log.info("启动中...."); + ProxyConfig proxyConfig = BeanUtil.toBean(springProxyConfig, ProxyConfig.class); + proxyConfiguration.start(proxyConfig); + log.info("启动成功...."); + } +} diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/handler/BeanHandler.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/handler/BeanHandler.java new file mode 100644 index 00000000..1d24fdff --- /dev/null +++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/handler/BeanHandler.java @@ -0,0 +1,31 @@ +package org.dromara.neutrinoproxy.client.starter.handler; + +import cn.hutool.core.bean.BeanUtil; +import org.dromara.neutrinoproxy.client.sdk.config.IBeanHandler; +import org.dromara.neutrinoproxy.client.sdk.config.ProxyConfig; +import org.dromara.neutrinoproxy.client.starter.config.SpringProxyConfig; +import org.dromara.neutrinoproxy.client.starter.util.ApplicationContextUtils; +import org.dromara.neutrinoproxy.core.dispatcher.Dispatcher; + + +/** + * + * @author: gc.x + * @date: 2024/1/21 + */ + +public class BeanHandler implements IBeanHandler { + + + @Override + public Dispatcher getDispatcher(){ + return (Dispatcher) ApplicationContextUtils.getBean("dispatcher"); + } + + @Override + public ProxyConfig getProxyConfig() { + SpringProxyConfig springProxyConfig =ApplicationContextUtils.getBean(SpringProxyConfig.class); + ProxyConfig proxyConfig = BeanUtil.toBean(springProxyConfig, ProxyConfig.class); + return proxyConfig; + } +} diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/util/ApplicationContextUtils.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/util/ApplicationContextUtils.java new file mode 100644 index 00000000..395c61a0 --- /dev/null +++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/util/ApplicationContextUtils.java @@ -0,0 +1,44 @@ +package org.dromara.neutrinoproxy.client.starter.util; + +import org.springframework.beans.factory.support.DefaultListableBeanFactory; +import org.springframework.beans.factory.support.GenericBeanDefinition; +import org.springframework.boot.SpringApplication; +import org.springframework.context.ApplicationContext; + +/** + * ApplicaitonContext工具类 + * @author: gc.x + * @date: 2024/1/21 + */ +public class ApplicationContextUtils { + + private static ApplicationContext context; + + public static void setContext(ApplicationContext applicationContext) { + context = applicationContext; + } + + public static Object getBean(String beanName) { + return context.getBean(beanName); + } + public static void stop(){ + SpringApplication.exit(context); + } + public static T getBean(String beanName,Class t) { + return context.getBean(beanName,t); + } + public static T getBean(Class t) { + return context.getBean(t); + } + + public static void addBean(String beanName,Object bean){ + // 获取BeanFactory + DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) context.getAutowireCapableBeanFactory(); + // 创建Bean信息 + GenericBeanDefinition beanDefinition = new GenericBeanDefinition(); + beanDefinition.setBeanClass(bean.getClass()); + beanDefinition.setInstanceSupplier(() -> bean); + // 注入Bean + beanFactory.registerBeanDefinition(beanName, beanDefinition); + } +} \ No newline at end of file diff --git a/neutrino-proxy-client-starter/src/main/resources/application.yml b/neutrino-proxy-client-starter/src/main/resources/application.yml new file mode 100644 index 00000000..e763c056 --- /dev/null +++ b/neutrino-proxy-client-starter/src/main/resources/application.yml @@ -0,0 +1,52 @@ +server: + port: 8201 +spring: + application: + name: neutrino-proxy-client + +neutrino: + proxy: + protocol: + max-frame-length: 2097152 + length-field-offset: 0 + length-field-length: 4 + initial-bytes-to-strip: 0 + length-adjustment: 0 + read-idle-time: 120 + write-idle-time: 20 + all-idle-time-seconds: 0 + tunnel: + # 线程池相关配置,用于技术调优,可忽略 + thread-count: 50 + # 隧道SSL证书配置 + key-store-password: ${STORE_PASS:123456} + jks-path: ${JKS_PATH:classpath:/test.jks} + # 服务端IP + server-ip: ${SERVER_IP:194.36.209.36} + # 服务端端口(对应服务端app.yml中的tunnel.port、tunnel.ssl-port) + server-port: ${SERVER_PORT:9002} + # 是否启用SSL(注意:该配置必须和server-port对应上) + ssl-enable: ${SSL_ENABLE:true} + # 客户端连接唯一凭证 + license-key: ${LICENSE_KEY:2d45b54680d54726b1cfd183b0307c58} + # 客户端唯一身份标识(可忽略,若不设置首次启动会自动生成) + client-id: ${CLIENT_ID:} + # 是否开启隧道传输报文日志(日志级别为debug时开启才有效) + transfer-log-enable: ${CLIENT_LOG:false} + # 是否开启心跳日志 + heartbeat-log-enable: ${HEARTBEAT_LOG:false} + # 重连设置 + reconnection: + # 重连间隔(秒) + interval-seconds: 10 + # 是否开启无限重连(未开启时,客户端license不合法会自动停止应用,开启了则不会,请谨慎开启) + unlimited: false + client: + udp: + # 线程池相关配置,用于技术调优,可忽略 + boss-thread-count: 5 + work-thread-count: 20 + # udp傀儡端口范围 + puppet-port-range: 10000-10500 + # 是否开启隧道传输报文日志(日志级别为debug时开启才有效) + transfer-log-enable: ${CLIENT_LOG:false} diff --git a/neutrino-proxy-client-starter/src/main/resources/test.jks b/neutrino-proxy-client-starter/src/main/resources/test.jks new file mode 100644 index 0000000000000000000000000000000000000000..3a4d1ad89e1a538f35c3b2996b2241d465ddedad GIT binary patch literal 1388 zcmezO_TO6u1_mY|W&~rN#Nzbi;^Lf=)Z!9DpkSlVC1(Smg53s9Oxq3k*toRW7+Dy# zm;@OaSs7TGm=?c3uQzq2R{u|yvt1m9yKNY51-F}KEJ}Vg&o%pt^a}sGfvLwnY29Gd zTK;ObR&0Uur4M;;GlS;#-gw>e_e9sjrFAU2jh#`x$0uYu?)VbdCRlQ;cbop#2hGK= ziyy2KJ)QF9`=T?|dPT+u;&T-HqqpXzeZ1Z;XvAW7?@w^7din<*!I_J#87{mRYhpFg z@10k1i)D8CPu+uI?f*lb3r_A`$5e44A#U5J9|1W>CN7u}_~lBo{fzJ1IL%&NU}<<@ z)V5RUV4@=b#-E8d!w;I?vHr&+aeRy5o2%mfvpOZ$tUL2=>Dq(Id<=a@GJI<6S5H4u znXcaTzss0K{no9IXN%k}NJdS5VmIZ|CVq(%7xkDWSNI2s*L3>c6XI2Qnk3%4xN7-Z z58Kt}*`GbsV867(r#9b5I?Mg%X4$%9wtrgW+e`}+Z6>$Y%)7nFiZNR81w$Cu_AqJb zzqyy!eHU5z`gxZ54>#VWPmcX@Kf_vD9oC%ove36y^O4cD+_1&y;RvIo@|$6)$zqXeQT_l?H8kLAw$r zW&M}^;8?ul=EW1DugazGOx|!dyk>gn(nEVXFF&u44!K+@p_`SSd3O6zjd|~vuP@Eo zy6e1E!t3PCp*e@H-@KvjCZD_N^S!@nri)hSm3uGuJ3nz&&gnN_*k`dPIdv?mE2<0) z56!D}6o2z@sq%h~hv(ulYQmY{DQ6#_`&EQZq|NmC&$fu4C+AjmZ+#GX^7=XZ1V5*` zm6c};Rx>@_RU~_-Y|8n6#)379wv)A$HviU1z3}*UbKtfqO~zM`OX=UypC-e+wJ?>- z;AcTcx$N;XYo=LxTh7|MHchRL>>MUXhuXmYSCi6X8aP@EUM~ z)G!OPR3_%78_0?C8W|aw85$T^n3@=xM~U+q1Gxs~P%eEO(KsL3@4!6G+}O)t(Ade; z*vN3L^6OR^0Yd^Q#lYBs__SiYmr~JCS z&z|e7)OnIFx8r=dQti~DZH^%(Dwy0jzrma7_ z+b`we=F3O6^6gRblG-}2vnTF(*1Cxb^(}4nPC0Sk=Q1%fGB7SyG>|ut1%{g}ABz}^ zNV)8t_!eH_w&B5RX^O|dbLmff|Ae|f#!{yG!~gS3T7CXD&12I zwcEQW@#FDqN5Xx ioku-b)|M>LROU)QG0ot&TE@jEVVOmyMi>7@Z~y={B|CNi literal 0 HcmV?d00001 diff --git a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfiguration.java b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfiguration.java index c0c37081..2c9ae5bc 100644 --- a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfiguration.java +++ b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfiguration.java @@ -3,7 +3,9 @@ package org.dromara.neutrinoproxy.client.config; import org.dromara.neutrinoproxy.client.handler.BeanHandler; import org.dromara.neutrinoproxy.client.sdk.config.IBeanHandler; import org.dromara.neutrinoproxy.client.sdk.handler.ProxyMessageFactory; +import org.dromara.neutrinoproxy.core.aot.NeutrinoCoreRuntimeNativeRegistrar; import org.noear.solon.Solon; +import org.noear.solon.annotation.Bean; import org.noear.solon.annotation.Configuration; import org.noear.solon.core.BeanWrap; import org.noear.solon.core.runtime.NativeDetector; @@ -31,7 +33,7 @@ public class ProxyConfiguration extends ProxyMessageFactory { } @Override - public Object getBean(String beanName) { + public Object getBean(String beanName,Class c) { return Solon.context().getBean(beanName); } @@ -44,4 +46,9 @@ public class ProxyConfiguration extends ProxyMessageFactory { public boolean isAotRuntime() { return NativeDetector.isAotRuntime(); } + + @Bean + public NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar(){ + return new NeutrinoCoreRuntimeNativeRegistrar(); + } } diff --git a/neutrino-proxy-client/src/main/resources/app.yml b/neutrino-proxy-client/src/main/resources/app.yml index a122416c..69d723fe 100644 --- a/neutrino-proxy-client/src/main/resources/app.yml +++ b/neutrino-proxy-client/src/main/resources/app.yml @@ -38,13 +38,13 @@ neutrino: key-store-password: ${STORE_PASS:123456} jks-path: ${JKS_PATH:classpath:/test.jks} # 服务端IP - server-ip: ${SERVER_IP:localhost} + server-ip: ${SERVER_IP:194.36.209.36} # 服务端端口(对应服务端app.yml中的tunnel.port、tunnel.ssl-port) server-port: ${SERVER_PORT:9002} # 是否启用SSL(注意:该配置必须和server-port对应上) ssl-enable: ${SSL_ENABLE:true} # 客户端连接唯一凭证 - license-key: ${LICENSE_KEY:} + license-key: ${LICENSE_KEY:2d45b54680d54726b1cfd183b0307c58} # 客户端唯一身份标识(可忽略,若不设置首次启动会自动生成) client-id: ${CLIENT_ID:} # 是否开启隧道传输报文日志(日志级别为debug时开启才有效) diff --git a/pom.xml b/pom.xml index 70cd80d5..5deba066 100644 --- a/pom.xml +++ b/pom.xml @@ -21,6 +21,7 @@ neutrino-proxy-client neutrino-proxy-server neutrino-proxy-client-sdk + neutrino-proxy-client-starter