Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d252c1d302 | ||
|
|
74c6cb6027 | ||
|
|
98ec9ae231 | ||
|
|
18d2dfb86e | ||
|
|
ef3f1bfa88 | ||
|
|
01a2689549 | ||
|
|
916f046789 |
@@ -1,21 +0,0 @@
|
|||||||
name: PublishNugetPackage
|
|
||||||
|
|
||||||
on: [create]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
publish:
|
|
||||||
name: Publish Project to Nuget
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: Setup .NET Core
|
|
||||||
uses: actions/setup-dotnet@v1
|
|
||||||
with:
|
|
||||||
dotnet-version: '5.0.100'
|
|
||||||
- name: Publish
|
|
||||||
run: |
|
|
||||||
version=`git describe --tags`
|
|
||||||
dotnet build --configuration release -p:PackageVersion=$version
|
|
||||||
dotnet nuget push bin/release/Simcu.SimApi.$version.nupkg -k ${NUGET_APIKEY} -s https://www.nuget.org/api/v2/package
|
|
||||||
env:
|
|
||||||
NUGET_APIKEY: ${{ secrets.NUGET_APIKEY }}
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
name: PublishNugetPackage
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "*"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish:
|
||||||
|
name: Publish Project to Nuget
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: Setup .NET Core
|
||||||
|
uses: actions/setup-dotnet@v1
|
||||||
|
with:
|
||||||
|
dotnet-version: "6.0.100"
|
||||||
|
- name: Publish
|
||||||
|
run: |
|
||||||
|
version=`git describe --tags`
|
||||||
|
dotnet build --configuration release -p:PackageVersion=$version
|
||||||
|
dotnet nuget push bin/release/Simcu.SimApi.$version.nupkg -k ${NUGET_APIKEY} -s https://www.nuget.org/api/v2/package
|
||||||
|
env:
|
||||||
|
NUGET_APIKEY: ${{ secrets.NUGET_APIKEY }}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace SimApi.Communications
|
namespace SimApi.Communications
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -7,8 +8,9 @@ namespace SimApi.Communications
|
|||||||
public class SimApiLoginItem
|
public class SimApiLoginItem
|
||||||
{
|
{
|
||||||
//登录用户的ID
|
//登录用户的ID
|
||||||
public int Id { get; set; }
|
public string Id { get; set; }
|
||||||
|
|
||||||
//登录用户来源
|
//登录用户来源
|
||||||
public string[] Type { get; set; }
|
public string[] Type { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -85,7 +85,5 @@ namespace SimApi.Controllers
|
|||||||
{
|
{
|
||||||
return new SimApiBaseResponse<string>();
|
return new SimApiBaseResponse<string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -35,10 +35,13 @@ namespace SimApi.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost("/auth/check"), SimApiDoc("认证", "检测登陆")]
|
[HttpPost("/auth/check"), SimApiDoc("认证", "检测登陆")]
|
||||||
public SimApiBaseResponse<int> CheckLogin()
|
public SimApiBaseResponse<string> CheckLogin()
|
||||||
{
|
{
|
||||||
ErrorWhenNull(LoginInfo, 401);
|
ErrorWhenNull(LoginInfo, 401);
|
||||||
return new SimApiBaseResponse<int> {Data = LoginInfo.Id};
|
return new SimApiBaseResponse<string>
|
||||||
|
{
|
||||||
|
Data = LoginInfo.Id
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace SimApi.Helpers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id"></param>
|
/// <param name="id"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string Login(int id, string type = "user", string token = null)
|
public string Login(string id, string type = "user", string token = null)
|
||||||
{
|
{
|
||||||
return Login(id, new[] { type }, token);
|
return Login(id, new[] { type }, token);
|
||||||
}
|
}
|
||||||
@@ -34,7 +34,7 @@ namespace SimApi.Helpers
|
|||||||
/// <param name="id"></param>
|
/// <param name="id"></param>
|
||||||
/// <param name="type"></param>
|
/// <param name="type"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string Login(int id, string[] type, string uuid = null)
|
public string Login(string id, string[] type, string uuid = null)
|
||||||
{
|
{
|
||||||
if (uuid == null)
|
if (uuid == null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -55,6 +55,19 @@ namespace SimApi.Helpers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string GetUploadUrl(string path, int expire = 7200)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return Mc.PresignedPutObjectAsync(Bucket, path, expire).Result;
|
||||||
|
}
|
||||||
|
catch (MinioException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Error occurred: " + e);
|
||||||
|
return e.Message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public string UploadFile(string path, Stream stream)
|
public string UploadFile(string path, Stream stream)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace SimApi.Helpers
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static bool CheckCell(string cell)
|
public static bool CheckCell(string cell)
|
||||||
{
|
{
|
||||||
var regex = new Regex("^1[34578]\\d{9}$");
|
var regex = new Regex("^1[3456789]\\d{9}$");
|
||||||
return regex.IsMatch(cell);
|
return regex.IsMatch(cell);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,15 +12,9 @@ namespace SimApi.Logger
|
|||||||
Name = name;
|
Name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IDisposable BeginScope<TState>(TState state)
|
public IDisposable BeginScope<TState>(TState state) => default!;
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsEnabled(LogLevel logLevel)
|
public bool IsEnabled(LogLevel logLevel) => true;
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception,
|
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception,
|
||||||
Func<TState, Exception, string> formatter)
|
Func<TState, Exception, string> formatter)
|
||||||
|
|||||||
+3
-3
@@ -14,7 +14,7 @@
|
|||||||
<SynchReleaseVersion>false</SynchReleaseVersion>
|
<SynchReleaseVersion>false</SynchReleaseVersion>
|
||||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
<PackageVersion>5.0.2</PackageVersion>
|
<PackageVersion>5.0.2</PackageVersion>
|
||||||
<TargetFrameworks>net5.0;netcoreapp3.1</TargetFrameworks>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(RunConfiguration)' == 'YYApi' " />
|
<PropertyGroup Condition=" '$(RunConfiguration)' == 'YYApi' " />
|
||||||
@@ -29,8 +29,8 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Minio" Version="3.1.13" />
|
<PackageReference Include="Minio" Version="3.1.13" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.1.4" />
|
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.2.3" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.1.4" />
|
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.2.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ProjectExtensions>
|
<ProjectExtensions>
|
||||||
<MonoDevelop>
|
<MonoDevelop>
|
||||||
|
|||||||
+36
-15
@@ -23,7 +23,7 @@ namespace SimApi
|
|||||||
var simApiOptions = new SimApiOptions();
|
var simApiOptions = new SimApiOptions();
|
||||||
options?.Invoke(simApiOptions);
|
options?.Invoke(simApiOptions);
|
||||||
|
|
||||||
// 是否使用SIMAUTH
|
// 是否使用 AUTH
|
||||||
if (simApiOptions.EnableSimApiAuth)
|
if (simApiOptions.EnableSimApiAuth)
|
||||||
{
|
{
|
||||||
builder.AddScoped<SimApiAuth>();
|
builder.AddScoped<SimApiAuth>();
|
||||||
@@ -43,7 +43,11 @@ namespace SimApi
|
|||||||
{
|
{
|
||||||
foreach (var group in docOptions.ApiGroups)
|
foreach (var group in docOptions.ApiGroups)
|
||||||
{
|
{
|
||||||
x.SwaggerDoc(group.Id, new OpenApiInfo {Title = group.Name, Description = group.Description});
|
x.SwaggerDoc(group.Id, new OpenApiInfo
|
||||||
|
{
|
||||||
|
Title = group.Name,
|
||||||
|
Description = group.Description
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
x.EnableAnnotations();
|
x.EnableAnnotations();
|
||||||
@@ -61,9 +65,15 @@ namespace SimApi
|
|||||||
new OpenApiSecurityScheme
|
new OpenApiSecurityScheme
|
||||||
{
|
{
|
||||||
Reference = new OpenApiReference
|
Reference = new OpenApiReference
|
||||||
{Type = ReferenceType.SecurityScheme, Id = "HeaderToken"}
|
{
|
||||||
|
Type = ReferenceType.SecurityScheme,
|
||||||
|
Id = "HeaderToken"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
new[] {"readAccess", "writeAccess"}
|
new[]
|
||||||
|
{
|
||||||
|
"readAccess", "writeAccess"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
haveSimApiAuth = true;
|
haveSimApiAuth = true;
|
||||||
@@ -121,9 +131,15 @@ namespace SimApi
|
|||||||
new OpenApiSecurityScheme
|
new OpenApiSecurityScheme
|
||||||
{
|
{
|
||||||
Reference = new OpenApiReference
|
Reference = new OpenApiReference
|
||||||
{Type = ReferenceType.SecurityScheme, Id = "oauth2"}
|
{
|
||||||
|
Type = ReferenceType.SecurityScheme,
|
||||||
|
Id = "oauth2"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
new[] {"SimApiAuth"}
|
new[]
|
||||||
|
{
|
||||||
|
"SimApiAuth"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -131,7 +147,11 @@ namespace SimApi
|
|||||||
if (haveSimApiAuth)
|
if (haveSimApiAuth)
|
||||||
{
|
{
|
||||||
x.AddSecurityDefinition("HeaderToken",
|
x.AddSecurityDefinition("HeaderToken",
|
||||||
new OpenApiSecurityScheme {Name = "Token", In = ParameterLocation.Header});
|
new OpenApiSecurityScheme
|
||||||
|
{
|
||||||
|
Name = "Token",
|
||||||
|
In = ParameterLocation.Header
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -139,17 +159,17 @@ namespace SimApi
|
|||||||
// 使用Header转发,应对代理后获取真实ip
|
// 使用Header转发,应对代理后获取真实ip
|
||||||
if (simApiOptions.EnableForwardHeaders)
|
if (simApiOptions.EnableForwardHeaders)
|
||||||
{
|
{
|
||||||
builder.Configure<ForwardedHeadersOptions>(options =>
|
builder.Configure<ForwardedHeadersOptions>(fwOptions =>
|
||||||
{
|
{
|
||||||
options.ForwardedHeaders = ForwardedHeaders.All;
|
fwOptions.ForwardedHeaders = ForwardedHeaders.All;
|
||||||
options.KnownNetworks.Clear();
|
fwOptions.KnownNetworks.Clear();
|
||||||
options.KnownProxies.Clear();
|
fwOptions.KnownProxies.Clear();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (simApiOptions.EnableLowerUrl)
|
if (simApiOptions.EnableLowerUrl)
|
||||||
{
|
{
|
||||||
builder.AddRouting(options => options.LowercaseUrls = true);
|
builder.AddRouting(rOptions => rOptions.LowercaseUrls = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (simApiOptions.EnableSimApiStorage)
|
if (simApiOptions.EnableSimApiStorage)
|
||||||
@@ -169,13 +189,14 @@ namespace SimApi
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static IApplicationBuilder UseSimApi(this IApplicationBuilder builder)
|
public static IApplicationBuilder UseSimApi(this IApplicationBuilder builder)
|
||||||
{
|
{
|
||||||
var options = builder.ApplicationServices.GetService<SimApiOptions>();
|
var options = builder.ApplicationServices.GetRequiredService<SimApiOptions>();
|
||||||
if (options.EnableLogger)
|
if (options.EnableLogger)
|
||||||
{
|
{
|
||||||
builder.ApplicationServices.GetService<ILoggerFactory>().AddProvider(new SimApiLoggerProvider());
|
builder.ApplicationServices.GetRequiredService<ILoggerFactory>()
|
||||||
|
.AddProvider(new SimApiLoggerProvider());
|
||||||
}
|
}
|
||||||
|
|
||||||
var logger = builder.ApplicationServices.GetService<ILogger<SimApiLogger>>();
|
var logger = builder.ApplicationServices.GetRequiredService<ILogger<SimApiLogger>>();
|
||||||
|
|
||||||
if (options.EnableForwardHeaders)
|
if (options.EnableForwardHeaders)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user