This commit is contained in:
Gui.H 2022-12-29 18:46:00 +08:00
parent 3488bd6ae7
commit 5cfe7dad78
3 changed files with 39 additions and 2 deletions

View File

@ -21,7 +21,7 @@
"FastTunnel": {
"Server": {
// [] ip/urls
"ServerAddr": "suidao.bx.com.cn",
"ServerAddr": "127.0.0.1",
// [] urls
"ServerPort": 1270
},

View File

@ -4,16 +4,23 @@
// https://github.com/FastTunnel/FastTunnel/edit/v2/LICENSE
// Copyright (c) 2019 Gui.H
using System;
using System.Net.Http;
using System.Net.Sockets;
using System.Text;
using FastTunnel.Api.Filters;
using FastTunnel.Core.Config;
using FastTunnel.Core.Extensions;
using FastTunnel.Server.Models;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.IdentityModel.Tokens;
using Serilog;
using Serilog.Events;
@ -64,6 +71,37 @@ public class Program
builder.Services.AddFastTunnelServer(builder.Configuration.GetSection("FastTunnel"));
// -------------------FastTunnel STEP1 END-------------------
var Configuration = builder.Configuration;
var apioptions = Configuration.GetSection("FastTunnel").Get<DefaultServerConfig>();
builder.Services.AddAuthentication("Bearer").AddJwtBearer(delegate (JwtBearerOptions options)
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = false,
ValidateAudience = false,
ValidateLifetime = true,
ClockSkew = TimeSpan.FromSeconds(apioptions.Api.JWT.ClockSkew),
ValidateIssuerSigningKey = true,
ValidAudience = apioptions.Api.JWT.ValidAudience,
ValidIssuer = apioptions.Api.JWT.ValidIssuer,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(apioptions.Api.JWT.IssuerSigningKey))
};
options.Events = new JwtBearerEvents
{
OnChallenge = async delegate (JwtBearerChallengeContext context)
{
context.HandleResponse();
context.Response.ContentType = "application/json;charset=utf-8";
await context.Response.WriteAsJsonAsync(new
{
code = -1,
message = context.Error ?? "未登录"
});
}
};
});
builder.Host.UseWindowsService();
var app = builder.Build();

View File

@ -37,7 +37,6 @@
// Tokenstoken
"Tokens": [ "TOKEN_FOR_CLIENT_AUTHENTICATION" ],
/**
* 访apiJWT
*/