From b96a97fe1c60e57eb1cbb58f575d2c4cb4a81524 Mon Sep 17 00:00:00 2001 From: "gui.h" <740360381@qq.com> Date: Fri, 24 Dec 2021 10:44:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dtokens=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FastTunnel.Core/Config/DefaultServerConfig.cs | 2 +- .../MiddleWare/FastTunnelClientHandler.cs | 19 ++++++++++--------- .../MiddleWare/FastTunnelSwapHandler.cs | 2 +- FastTunnel.Server/config/appsettings.json | 6 +++--- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/FastTunnel.Core/Config/DefaultServerConfig.cs b/FastTunnel.Core/Config/DefaultServerConfig.cs index 1b4b44e..f0572ee 100644 --- a/FastTunnel.Core/Config/DefaultServerConfig.cs +++ b/FastTunnel.Core/Config/DefaultServerConfig.cs @@ -16,7 +16,7 @@ namespace FastTunnel.Core.Config [Obsolete("由Tokens替换")] public string Token { get; set; } - public string[] Tokens { get; set; } + public List Tokens { get; set; } public ApiOptions Api { get; set; } diff --git a/FastTunnel.Core/Forwarder/MiddleWare/FastTunnelClientHandler.cs b/FastTunnel.Core/Forwarder/MiddleWare/FastTunnelClientHandler.cs index 4445bcf..cec4d69 100644 --- a/FastTunnel.Core/Forwarder/MiddleWare/FastTunnelClientHandler.cs +++ b/FastTunnel.Core/Forwarder/MiddleWare/FastTunnelClientHandler.cs @@ -97,24 +97,25 @@ namespace FastTunnel.Core.MiddleWares private bool checkToken(HttpContext context) { - if (string.IsNullOrEmpty(fastTunnelServer.ServerOption.CurrentValue.Token) - && (fastTunnelServer.ServerOption.CurrentValue.Tokens == null) || fastTunnelServer.ServerOption.CurrentValue.Tokens.Count() == 0) + bool checkToken = false; + if ((fastTunnelServer.ServerOption.CurrentValue.Tokens != null && fastTunnelServer.ServerOption.CurrentValue.Tokens.Count() != 0) + || !string.IsNullOrEmpty(fastTunnelServer.ServerOption.CurrentValue.Token)) { - return true; + checkToken = true; } + if (!checkToken) + return true; + // 客户端未携带token,登录失败 if (!context.Request.Headers.TryGetValue(FastTunnelConst.FASTTUNNEL_TOKEN, out var token)) - { return false; - } - if (token.Equals(fastTunnelServer.ServerOption.CurrentValue.Token)) - { + if (token.Equals(fastTunnelServer.ServerOption.CurrentValue.Token) + || (fastTunnelServer.ServerOption.CurrentValue.Tokens?.Contains(token) ?? false)) return true; - }; - return fastTunnelServer.ServerOption.CurrentValue.Tokens?.Contains(token) ?? false; + return false; } } } diff --git a/FastTunnel.Core/Forwarder/MiddleWare/FastTunnelSwapHandler.cs b/FastTunnel.Core/Forwarder/MiddleWare/FastTunnelSwapHandler.cs index 4fb0874..f87e4c8 100644 --- a/FastTunnel.Core/Forwarder/MiddleWare/FastTunnelSwapHandler.cs +++ b/FastTunnel.Core/Forwarder/MiddleWare/FastTunnelSwapHandler.cs @@ -54,7 +54,7 @@ namespace FastTunnel.Core.Forwarder.MiddleWare responseAwaiter.TrySetResult(reverseConnection); var closedAwaiter = new TaskCompletionSource(); - closedAwaiter.SetTimeOut(1000 * 60 * 30, null); + closedAwaiter.SetTimeOut(20000, null); lifetime.ConnectionClosed.Register((task) => { diff --git a/FastTunnel.Server/config/appsettings.json b/FastTunnel.Server/config/appsettings.json index 41df405..a0d801b 100644 --- a/FastTunnel.Server/config/appsettings.json +++ b/FastTunnel.Server/config/appsettings.json @@ -23,9 +23,9 @@ // ѡǷ˿תú󲻴ForwardͶ˿ת.Ĭfalse "EnableForward": true, - // ѡΪʱͻҲЯTokenTokensеһtokenܾ¼ - "Token": "TOKEN_FOR_CLIENT_AUTHENTICATION", - "Tokens": [ "TOKEN1", "TOKEN2", "TOKEN2" ], + // ѡΪʱͻҲЯTokenTokensеһtokenܾ¼ TokenδƳTokens + //"Token": "TOKEN_FOR_CLIENT_AUTHENTICATION", + "Tokens": [ "TOKEN_FOR_CLIENT_AUTHENTICATION" ], /** * apiӿڵJWT