修复tokens问题

This commit is contained in:
gui.h 2021-12-24 10:44:49 +08:00
parent 8c7fb34589
commit b96a97fe1c
4 changed files with 15 additions and 14 deletions

View File

@ -16,7 +16,7 @@ namespace FastTunnel.Core.Config
[Obsolete("由Tokens替换")]
public string Token { get; set; }
public string[] Tokens { get; set; }
public List<string> Tokens { get; set; }
public ApiOptions Api { get; set; }

View File

@ -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)
|| (fastTunnelServer.ServerOption.CurrentValue.Tokens?.Contains(token) ?? false))
return true;
return false;
}
if (token.Equals(fastTunnelServer.ServerOption.CurrentValue.Token))
{
return true;
};
return fastTunnelServer.ServerOption.CurrentValue.Tokens?.Contains<string>(token) ?? false;
}
}
}

View File

@ -54,7 +54,7 @@ namespace FastTunnel.Core.Forwarder.MiddleWare
responseAwaiter.TrySetResult(reverseConnection);
var closedAwaiter = new TaskCompletionSource<object>();
closedAwaiter.SetTimeOut(1000 * 60 * 30, null);
closedAwaiter.SetTimeOut(20000, null);
lifetime.ConnectionClosed.Register((task) =>
{

View File

@ -23,9 +23,9 @@
// Forward.false
"EnableForward": true,
// TokenTokenstoken
"Token": "TOKEN_FOR_CLIENT_AUTHENTICATION",
"Tokens": [ "TOKEN1", "TOKEN2", "TOKEN2" ],
// TokenTokenstoken TokenTokens
//"Token": "TOKEN_FOR_CLIENT_AUTHENTICATION",
"Tokens": [ "TOKEN_FOR_CLIENT_AUTHENTICATION" ],
/**
* 访apiJWT