From 32504d33af2b53eaf9a0b93430b9c52fceba2681 Mon Sep 17 00:00:00 2001 From: aoshiguchen <1052045476@qq.com> Date: Fri, 2 Jun 2023 22:36:39 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=9C=8D=E5=8A=A1=E7=AB=AF=E3=80=81?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E8=AE=A4=E8=AF=81=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E8=B0=83=E6=95=B4.=202=E3=80=81=E8=A7=A3=E5=86=B3=E7=AB=AF?= =?UTF-8?q?=E5=8F=A3=E6=98=A0=E5=B0=84=E8=A2=AB=E7=A6=81=E7=94=A8=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=90=AF=E5=8A=A8=E4=BE=9D?= =?UTF-8?q?=E7=84=B6=E8=83=BD=E8=AE=BF=E9=97=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/handler/ProxyMessageAuthHandler.java | 8 +++++++- .../server/service/VisitorChannelService.java | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/handler/ProxyMessageAuthHandler.java b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/handler/ProxyMessageAuthHandler.java index a042c816..4cdd240a 100644 --- a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/handler/ProxyMessageAuthHandler.java +++ b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/handler/ProxyMessageAuthHandler.java @@ -8,6 +8,7 @@ import org.dromara.neutrinoproxy.core.ProxyMessageHandler; import org.dromara.neutrinoproxy.core.dispatcher.Match; import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; +import org.noear.solon.Solon; import org.noear.solon.annotation.Component; /** @@ -25,8 +26,13 @@ public class ProxyMessageAuthHandler implements ProxyMessageHandler { JSONObject data = JSONObject.parseObject(info); Integer code = data.getInteger("code"); log.info("认证结果:{}", info); - if (!ExceptionEnum.SUCCESS.getCode().equals(code)) { + if (ExceptionEnum.CONNECT_FAILED.getCode().equals(code)) { context.channel().close(); + } else if (ExceptionEnum.AUTH_FAILED.getCode().equals(code)) { + // 客户端认证失败,直接停止服务 + log.info("client auth failed , client stop."); + context.channel().close(); + Solon.stop(); } } } diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/VisitorChannelService.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/VisitorChannelService.java index bd409d69..fe550954 100644 --- a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/VisitorChannelService.java +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/VisitorChannelService.java @@ -218,6 +218,10 @@ public class VisitorChannelService { } for (PortMappingDO portMapping : portMappingList) { + if (EnableStatusEnum.DISABLE.getStatus().equals(portMapping.getEnable())) { + // 端口映射被禁用了,忽略 TODO 端口被禁用了也需要处理 + continue; + } // TODO 此处切入,TCP/UDP代理 try { proxyMutualService.bindServerPort(cmdChannelAttachInfo, portMapping.getServerPort());