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());