1、服务端、客户端认证逻辑调整.

2、解决端口映射被禁用时,客户端启动依然能访问的问题
This commit is contained in:
aoshiguchen
2023-06-02 22:36:39 +08:00
parent bcd429d54f
commit 32504d33af
2 changed files with 11 additions and 1 deletions
@@ -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();
}
}
}
@@ -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());