diff --git a/Lib/SimpleDapper.dll b/Lib/SimpleDapper.dll new file mode 100644 index 00000000..d02f3c74 Binary files /dev/null and b/Lib/SimpleDapper.dll differ diff --git a/Tiobon.Core.Api/Controllers/TestController.cs b/Tiobon.Core.Api/Controllers/TestController.cs new file mode 100644 index 00000000..696f6894 --- /dev/null +++ b/Tiobon.Core.Api/Controllers/TestController.cs @@ -0,0 +1,26 @@ +using System.Data; +using SimpleDapper; + +namespace Tiobon.Core.Api.Controllers; + +/// +/// Ghra_Grade +/// +[Route("api/[controller]")] +[ApiController, GlobalActionFilter] +[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghra)] +public class TestController : BaseController +{ + public TestController(IGhra_GradeServices service) : base(service) + { + } + + [HttpGet] + public async Task Test() + { + + string sql = "SELECT * FROM Ghra_Grade"; + DataTable dt = await DbAccess.GetDataTableAsync(sql); + return Success(); + } +} \ No newline at end of file diff --git a/Tiobon.Core.Api/Program.cs b/Tiobon.Core.Api/Program.cs index 5b70419c..aa09e857 100644 --- a/Tiobon.Core.Api/Program.cs +++ b/Tiobon.Core.Api/Program.cs @@ -9,6 +9,7 @@ using Microsoft.IdentityModel.Logging; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; using Serilog; +using SimpleDapper.Extensions; using Tiobon.Core; using Tiobon.Core.Common.Core; using Tiobon.Core.Extensions; @@ -55,6 +56,7 @@ builder.Services.AddCacheSetup(); builder.Services.AddSqlsugarSetup(); builder.Services.AddDbSetup(); builder.Services.AddInitializationHostServiceSetup(); +builder.Services.AddSimpleDapperSetup(); builder.Host.AddSerilogSetup(); diff --git a/Tiobon.Core.Api/Tiobon.Core.Api.csproj b/Tiobon.Core.Api/Tiobon.Core.Api.csproj index cfa633c2..41dd1685 100644 --- a/Tiobon.Core.Api/Tiobon.Core.Api.csproj +++ b/Tiobon.Core.Api/Tiobon.Core.Api.csproj @@ -108,6 +108,12 @@ + + + ..\Lib\SimpleDapper.dll + + + diff --git a/Tiobon.Core.Api/Tiobon.Core.xml b/Tiobon.Core.Api/Tiobon.Core.xml index 628d91ba..04ebdb87 100644 --- a/Tiobon.Core.Api/Tiobon.Core.xml +++ b/Tiobon.Core.Api/Tiobon.Core.xml @@ -1593,6 +1593,11 @@ + + + Ghra_Grade + + 全局请求验证 diff --git a/Tiobon.Core.Tests/Common_Test/DbAccess_Should.cs b/Tiobon.Core.Tests/Common_Test/DbAccess_Should.cs new file mode 100644 index 00000000..75d9404e --- /dev/null +++ b/Tiobon.Core.Tests/Common_Test/DbAccess_Should.cs @@ -0,0 +1,27 @@ +using System.Data; +using SimpleDapper; +using Tiobon.Core.Model.Models; +using Xunit; + +namespace Tiobon.Core.Tests.Common_Test +{ + public class DbAccess_Should + { + + [Fact] + public async void Test() + { + AppSetting.Init(); + + string sql = "SELECT * FROM Ghra_Grade"; + DataTable dt = await DbAccess.GetDataTableAsync(sql); + + //var list = await DbAccess.QueryListAsync(sql); + + //var entity = new Ghra_Grade(); + //DbAccess.Add(entity); + + } + + } +} diff --git a/Tiobon.Core.Tests/Tiobon.Core.Tests.csproj b/Tiobon.Core.Tests/Tiobon.Core.Tests.csproj index 0edc85a5..053d455e 100644 --- a/Tiobon.Core.Tests/Tiobon.Core.Tests.csproj +++ b/Tiobon.Core.Tests/Tiobon.Core.Tests.csproj @@ -18,10 +18,11 @@ - - - - + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -31,6 +32,12 @@ + + + ..\Lib\SimpleDapper.dll + + + Always diff --git a/Tiobon.Core.Tests/appsettings.json b/Tiobon.Core.Tests/appsettings.json index c233b1ea..58704b32 100644 --- a/Tiobon.Core.Tests/appsettings.json +++ b/Tiobon.Core.Tests/appsettings.json @@ -1,98 +1,99 @@ { - "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 - "Serilog": { - "MinimumLevel": { - "Default": "Debug", - "Override": { - "Microsoft": "Information", - "Microsoft.AspNetCore": "Warning", - "System": "Warning", - "System.Net.Http.HttpClient": "Warning", - "Hangfire": "Information", - "Magicodes": "Warning", - "DotNetCore.CAP": "Information", - "Savorboard.CAP": "Information", - "Quartz": "Information" - } - } - }, - "AllowedHosts": "*", - "Redis": { - "Enable": false, - "ConnectionString": "127.0.0.1:6379", - "InstanceName": "" //前缀 - }, - "RabbitMQ": { - "Enabled": false, - "Connection": "118.25.251.13", - "UserName": "", - "Password": "!", - "RetryCount": 3 - }, - "Kafka": { - "Enabled": false, - "Servers": "localhost:9092", - "Topic": "Tiobon", - "GroupId": "Tiobon-consumer", - "NumPartitions": 3 //主题分区数量 - }, - "EventBus": { - "Enabled": false, - "SubscriptionClientName": "Tiobon.Core" - }, - "AppSettings": { - "CachingAOP": { - "Enabled": true + "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 + "Serilog": { + "MinimumLevel": { + "Default": "Debug", + "Override": { + "Microsoft": "Information", + "Microsoft.AspNetCore": "Warning", + "System": "Warning", + "System.Net.Http.HttpClient": "Warning", + "Hangfire": "Information", + "Magicodes": "Warning", + "DotNetCore.CAP": "Information", + "Savorboard.CAP": "Information", + "Quartz": "Information" + } + } + }, + "AllowedHosts": "*", + "Redis": { + "Enable": false, + "ConnectionString": "127.0.0.1:6379", + "InstanceName": "" //前缀 }, - "LogToDb": true, - "LogAOP": { - "Enabled": false, - "LogToFile": { - "Enabled": true - }, - "LogToDB": { - "Enabled": true - } + "RabbitMQ": { + "Enabled": true, + "Connection": "101xxxx57", + "UserName": "xxxx", + "Password": "xxxxx", + "Port": "5672", + "RetryCount": 2 }, - "TranAOP": { - "Enabled": true + "Kafka": { + "Enabled": false, + "Servers": "localhost:9092", + "Topic": "Tiobon", + "GroupId": "Tiobon-consumer", + "NumPartitions": 3 //主题分区数量 }, - "UserAuditAOP": { - "Enabled": false + "EventBus": { + "Enabled": false, + "SubscriptionClientName": "Tiobon.Core" }, - "SqlAOP": { - "Enabled": true, - "LogToFile": { - "Enabled": true - }, - "LogToDB": { - "Enabled": true - }, - "LogToConsole": { - "Enabled": true - } + "AppSettings": { + "CachingAOP": { + "Enabled": true + }, + "LogToDb": true, + "LogAOP": { + "Enabled": false, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + } + }, + "TranAOP": { + "Enabled": true + }, + "UserAuditAOP": { + "Enabled": false + }, + "SqlAOP": { + "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + }, + "LogToConsole": { + "Enabled": true + } + }, + "Date": "2018-08-28", + "SeedDBEnabled": false, //只生成表结构 + "SeedDBDataEnabled": false, //生成表,并初始化数据 + "Author": "Tiobon.Core", + "SvcName": "", // /svc/Tiobon + "UseLoadTest": false }, - "Date": "2018-08-28", - "SeedDBEnabled": true, //只生成表结构 - "SeedDBDataEnabled": true, //生成表,并初始化数据 - "Author": "Tiobon.Core", - "SvcName": "", // /svc/Tiobon - "UseLoadTest": false - }, - //优化DB配置、不会再区分单库多库 - //MainDb:标识当前项目的主库,所对应的连接字符串的Enabled必须为true - //Log:标识日志库,所对应的连接字符串的Enabled必须为true - //从库只需配置Slaves数组,要求数据库类型一致!,比如都是SqlServer - // - //新增,故障转移方案 - //如果主库挂了,会自动切换到备用连接(比如说主库+备用库) - //备用连接的ConnId配置为主库的ConnId+数字即可,比如主库的ConnId为Main,那么备用连接的ConnId为Mian1 - //主库、备用库无需数据库类型一致! - //备用库不会有程序维护,需要手动维护 - "MainDB": "Main", //当前项目的主库,所对应的连接字符串的Enabled必须为true - "DBS": [ - /* + //优化DB配置、不会再区分单库多库 + //MainDb:标识当前项目的主库,所对应的连接字符串的Enabled必须为true + //Log:标识日志库,所对应的连接字符串的Enabled必须为true + //从库只需配置Slaves数组,要求数据库类型一致!,比如都是SqlServer + // + //新增,故障转移方案 + //如果主库挂了,会自动切换到备用连接(比如说主库+备用库) + //备用连接的ConnId配置为主库的ConnId+数字即可,比如主库的ConnId为Main,那么备用连接的ConnId为Mian1 + //主库、备用库无需数据库类型一致! + //备用库不会有程序维护,需要手动维护 + "MainDB": "WMTiobon_MSSQL_Main", //当前项目的主库,所对应的连接字符串的Enabled必须为true + "DBS": [ + /* 对应下边的 DBType MySql = 0, SqlServer = 1, @@ -102,247 +103,268 @@ Dm = 5,//达梦 Kdbndp = 6,//人大金仓 */ - { - "ConnId": "Main", - "DBType": 2, - "Enabled": true, - "Connection": "WMTiobon.db", //sqlite只写数据库名就行 - "Slaves": [ { - "HitRate": 0,// 值越大,优先级越高 0不使用 - "Connection": "WMTiobon2.db" - } - ] - }, - { - "ConnId": "Main2", - "DBType": 2, - "Enabled": true, - "Connection": "WMTiobon3.db", //sqlite只写数据库名就行 - "Slaves": [ + "ConnId": "WMTiobon_MSSQL_Main", + "DBType": 1, + "Enabled": true, + "Connection": "Data Source=116.204.98.209;User ID=Tiobon;Password=&($!4UGUyU#$2sp9O;Database=Tiobon;Encrypt=True;TrustServerCertificate=True;", + "ProviderName": "System.Data.SqlClient" + }, + { + "ConnId": "Main", + "DBType": 2, + "Enabled": false, + "Connection": "WMTiobon.db", //sqlite只写数据库名就行 + "Slaves": [ + { + "HitRate": 0, // 值越大,优先级越高 0不使用 + "Connection": "WMTiobon2.db" + } + ] + }, + { + "ConnId": "Main2", + "DBType": 2, + "Enabled": false, + "Connection": "WMTiobon3.db", //sqlite只写数据库名就行 + "Slaves": [ + { + "HitRate": 0, // 值越大,优先级越高 0不使用 + "Connection": "WMTiobon4.db" + } + ] + }, + { + "ConnId": "Log", //日志库连接固定名称,不要改,其他的可以改 + "DBType": 1, + "Enabled": true, + "HitRate": 50, + "Connection": "Data Source=116.204.98.209;User ID=Tiobon;Password=&($!4UGUyU#$2sp9O;Database=Tiobon;Encrypt=True;TrustServerCertificate=True;", + "ProviderName": "System.Data.SqlClient" + }, + { + "ConnId": "WMTiobon_MSSQL_1", + "DBType": 1, + "Enabled": false, + "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMTiobon_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", + "ProviderName": "System.Data.SqlClient" + }, { - "HitRate": 0,// 值越大,优先级越高 0不使用 - "Connection": "WMTiobon4.db" + "ConnId": "WMTiobon_MSSQL_2", + "DBType": 1, + "Enabled": false, + "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMTiobon_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", + "ProviderName": "System.Data.SqlClient" + }, + { + "ConnId": "WMTiobon_MYSQL", + "DBType": 0, + "Enabled": false, + "Connection": "server=localhost;Database=Tiobon;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" + }, + { + "ConnId": "WMTiobon_MYSQL_2", + "DBType": 0, + "Enabled": false, + "Connection": "server=localhost;Database=Tioboncore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" + }, + { + "ConnId": "WMTiobon_ORACLE", + "DBType": 3, + "Enabled": false, + "Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;" + }, + { + "ConnId": "WMTiobon_DM", + "DBType": 5, + "Enabled": false, + "Connection": "Server=xxxxx:5236;User Id=xxxxx;PWD=xxxxx;SCHEMA=TESTDBA;" + }, + { + "ConnId": "WMTiobon_KDBNDP", + "DBType": 6, + "Enabled": false, + "Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;" } - ] - }, - { - "ConnId": "Log", //日志库连接固定名称,不要改,其他的可以改 - "DBType": 2, - "Enabled": true, - "HitRate": 50, - "Connection": "WMTiobonLog.db" //sqlite只写数据库名就行 - }, - { - "ConnId": "WMTiobon_MSSQL_1", - "DBType": 1, - "Enabled": false, - "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMTiobon_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", - "ProviderName": "System.Data.SqlClient" - }, - { - "ConnId": "WMTiobon_MSSQL_2", - "DBType": 1, - "Enabled": false, - "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMTiobon_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", - "ProviderName": "System.Data.SqlClient" + ], + "Audience": { + "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //不要太短,16位+ + "SecretFile": "C:\\my-file\\Tiobon.core.audience.secret.txt", //安全。内容就是Secret + "Issuer": "Tiobon.Core", //这个值一定要在自己的项目里修改!! + "Audience": "wr" //这个值一定要在自己的项目里修改!! }, - { - "ConnId": "WMTiobon_MYSQL", - "DBType": 0, - "Enabled": false, - "Connection": "server=localhost;Database=Tiobon;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" + "Mongo": { + "ConnectionString": "mongodb://nosql.data", + "Database": "TiobonCoreDb" }, - { - "ConnId": "WMTiobon_MYSQL_2", - "DBType": 0, - "Enabled": false, - "Connection": "server=localhost;Database=Tioboncore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" - }, - { - "ConnId": "WMTiobon_ORACLE", - "DBType": 3, - "Enabled": false, - "Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;" - }, - { - "ConnId": "WMTiobon_DM", - "DBType": 5, - "Enabled": false, - "Connection": "Server=xxxxx:5236;User Id=xxxxx;PWD=xxxxx;SCHEMA=TESTDBA;" - }, - { - "ConnId": "WMTiobon_KDBNDP", - "DBType": 6, - "Enabled": false, - "Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;" - } - ], - "Audience": { - "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //不要太短,16位+ - "SecretFile": "C:\\my-file\\Tiobon.core.audience.secret.txt", //安全。内容就是Secret - "Issuer": "Tiobon.Core", - "Audience": "wr" - }, - "Mongo": { - "ConnectionString": "mongodb://nosql.data", - "Database": "TiobonCoreDb" - }, - "Startup": { - "Domain": "http://localhost:9291", - "Cors": { - "PolicyName": "CorsIpAccess", //策略名称 - "EnableAllIPs": false, //当为true时,开放所有IP均可访问。 - // 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 - // 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的 - "IPs": "http://127.0.0.1:2364,http://localhost:2364,http://127.0.0.1:6688,http://localhost:6688" - }, - "AppConfigAlert": { - "Enabled": true - }, - "ApiName": "Tiobon.Core", - "IdentityServer4": { - "Enabled": false, // 这里默认是false,表示使用jwt,如果设置为true,则表示系统使用Ids4模式 - "AuthorizationUrl": "http://localhost:5004", // 认证中心域名 - "ApiName": "Tiobon.core.api" // 资源服务器 - }, - "Authing": { - "Enabled": false, - "Issuer": "https://uldr24esx31h-demo.authing.cn/oidc", - "Audience": "63d51c4205c2849803be5178", - "JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json" - }, - "RedisMq": { - "Enabled": false //redis 消息队列 - }, - "MiniProfiler": { - "Enabled": false //性能分析开启 - }, - "Nacos": { - "Enabled": false //Nacos注册中心 - } - }, - "Middleware": { - "RequestResponseLog": { - "Enabled": true, - "LogToFile": { - "Enabled": true - }, - "LogToDB": { - "Enabled": true - } + "Startup": { + "Domain": "http://localhost:9291", + "Cors": { + "PolicyName": "CorsIpAccess", //策略名称 + "EnableAllIPs": false, //当为true时,开放所有IP均可访问。 + // 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 + // 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的 + "IPs": "http://127.0.0.1:2364,http://localhost:2364,http://127.0.0.1:6688,http://localhost:6688" + }, + "AppConfigAlert": { + "Enabled": true + }, + "IdentityServer4": { + "Enabled": false, // 这里默认是false,表示使用jwt,如果设置为true,则表示系统使用Ids4模式 + "AuthorizationUrl": "http://localhost:5004", // 认证中心域名 + "ApiName": "Tiobon.core.api" // 资源服务器 + }, + "Authing": { + "Enabled": false, + "Issuer": "https://uldr24esx31h-demo.authing.cn/oidc", + "Audience": "63d51c4205c2849803be5178", + "JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json" + }, + "RedisMq": { + "Enabled": false //redis 消息队列 + }, + "MiniProfiler": { + "Enabled": false //性能分析开启 + }, + "Nacos": { + "Enabled": false //Nacos注册中心 + } }, - "IPLog": { - "Enabled": true, - "LogToFile": { - "Enabled": true - }, - "LogToDB": { - "Enabled": true - } + "Middleware": { + "RequestResponseLog": { + "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + } + }, + "IPLog": { + "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + } + }, + "RecordAccessLogs": { + "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + }, + "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," + }, + "SignalR": { + "Enabled": true + }, + "SignalRSendLog": { + "Enabled": true + }, + "QuartzNetJob": { + "Enabled": true + }, + "Consul": { + "Enabled": false + }, + "IpRateLimit": { + "Enabled": true + }, + "EncryptionResponse": { + "Enabled": true, + "AllApis": false, + "LimitApis": [ + "/api/Login/GetJwtTokenSecret" + ] + }, + "EncryptionRequest": { + "Enabled": true, + "AllApis": false, + "LimitApis": [ + "/api/Login/GetJwtTokenSecret" + ] + } }, - "RecordAccessLogs": { - "Enabled": true, - "LogToFile": { - "Enabled": true - }, - "LogToDB": { - "Enabled": true - }, - "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," + "IpRateLimiting": { + "EnableEndpointRateLimiting": false, //False: globally executed, true: executed for each + "StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter + "RealIpHeader": "X-Real-IP", + "ClientIdHeader": "X-ClientId", + "IpWhitelist": [], //白名单 + "EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ], + "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], + "QuotaExceededResponse": { + "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", + "ContentType": "application/json", + "StatusCode": 429 + }, + "HttpStatusCode": 429, //返回状态码 + "GeneralRules": [ //api规则,结尾一定要带* + { + "Endpoint": "*:/api/Tiobon*", + "Period": "1m", + "Limit": 20 + }, + { + "Endpoint": "*/api/*", + "Period": "1s", + "Limit": 3 + }, + { + "Endpoint": "*/api/*", + "Period": "1m", + "Limit": 30 + }, + { + "Endpoint": "*/api/*", + "Period": "12h", + "Limit": 500 + } + ] + }, - "SignalR": { - "Enabled": true + "ConsulSetting": { + "ServiceName": "TiobonCoreService", + "ServiceIP": "localhost", + "ServicePort": "9291", + "ServiceHealthCheck": "/healthcheck", + "ConsulAddress": "http://localhost:8500" }, - "SignalRSendLog": { - "Enabled": true + "PayInfo": { //建行聚合支付信息 + "MERCHANTID": "", //商户号 + "POSID": "", //柜台号 + "BRANCHID": "", //分行号 + "pubKey": "", //公钥 + "USER_ID": "", //操作员号 + "PASSWORD": "", //密码 + "OutAddress": "http://127.0.0.1:12345" //外联地址 }, - "QuartzNetJob": { - "Enabled": true + "nacos": { + "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 + "DefaultTimeOut": 15000, // 默认超时时间 + "Namespace": "public", // 命名空间 + "ListenInterval": 10000, // 监听的频率 + "ServiceName": "Tiobon.Core.Api", // 服务名 + "Port": "9291", // 服务端口号 + "RegisterEnabled": true // 是否直接注册nacos }, - "Consul": { - "Enabled": false + "LogFiedOutPutConfigs": { + "tcpAddressHost": "", // 输出elk的tcp连接地址 + "tcpAddressPort": 0, // 输出elk的tcp端口号 + "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 + { + "FiedName": "applicationName", + "FiedValue": "Tiobon.Core.Api" + } + ] }, - "IpRateLimit": { - "Enabled": true + "Seq": { + "Enabled": true, + "Address": "http://localhost:5341/", + "ApiKey": "" } - }, - "IpRateLimiting": { - "EnableEndpointRateLimiting": true, //False: globally executed, true: executed for each - "StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter - "RealIpHeader": "X-Real-IP", - "ClientIdHeader": "X-ClientId", - "IpWhitelist": [], //白名单 - "EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ], - "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], - "QuotaExceededResponse": { - "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", - "ContentType": "application/json", - "StatusCode": 429 - }, - "HttpStatusCode": 429, //返回状态码 - "GeneralRules": [ //api规则,结尾一定要带* - { - "Endpoint": "*:/api/Tiobon*", - "Period": "1m", - "Limit": 20 - }, - { - "Endpoint": "*/api/*", - "Period": "1s", - "Limit": 3 - }, - { - "Endpoint": "*/api/*", - "Period": "1m", - "Limit": 30 - }, - { - "Endpoint": "*/api/*", - "Period": "12h", - "Limit": 500 - } - ] - - }, - "ConsulSetting": { - "ServiceName": "TiobonCoreService", - "ServiceIP": "localhost", - "ServicePort": "9291", - "ServiceHealthCheck": "/healthcheck", - "ConsulAddress": "http://localhost:8500" - }, - "PayInfo": { //建行聚合支付信息 - "MERCHANTID": "", //商户号 - "POSID": "", //柜台号 - "BRANCHID": "", //分行号 - "pubKey": "", //公钥 - "USER_ID": "", //操作员号 - "PASSWORD": "", //密码 - "OutAddress": "http://127.0.0.1:12345" //外联地址 - }, - "nacos": { - "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 - "DefaultTimeOut": 15000, // 默认超时时间 - "Namespace": "public", // 命名空间 - "ListenInterval": 10000, // 监听的频率 - "ServiceName": "Tiobon.Core.Api", // 服务名 - "Port": "9291", // 服务端口号 - "RegisterEnabled": true // 是否直接注册nacos - }, - "LogFiedOutPutConfigs": { - "tcpAddressHost": "", // 输出elk的tcp连接地址 - "tcpAddressPort": 0, // 输出elk的tcp端口号 - "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 - { - "FiedName": "applicationName", - "FiedValue": "Tiobon.Core.Api" - } - ] - }, - "Seq": { - "Enabled": true, - "Address": "http://localhost:5341/", - "ApiKey": "" - } } \ No newline at end of file