@@ -7,97 +7,97 @@
}
}
} ,
} ,
"ConnectionStrings" : {
"ConnectionStrings" : {
"conn_db" : "server =LAPTOP-STKF2M8H\\SQLEXPRESS;uid=sa;pwd=zradmin123;database=ZrAdmin;Trusted_Connection=SSPI"
"conn_db" : "Data Source =LAPTOP-STKF2M8H\\SQLEXPRESS;User ID=sa;Password=zradmin123;Initial Catalog=ZrAdmin;Integrated Security=SSPI" , //其他连接字符串请看官方文档
"conn_db_type" : "1" //数据库类型 MySql = 0, SqlServer = 1
} ,
} ,
"conn_db_dbtype" : 1 , //<2F> <> <EFBFBD> ݿ<EFBFBD> <DDBF> <EFBFBD> <EFBFBD> <EFBFBD> MySql = 0, SqlServer = 1
"urls" : "http://localhost:8888" , //项目启动url, 如果改动端口前端对应devServer也需要进行修改
"u rls" : "http://localhost:8888 " , //<EFBFBD> <EFBFBD> Ŀ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> url<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ķ<EFBFBD> <EFBFBD> ˿<EFBFBD> ǰ<EFBFBD> ˶<EFBFBD> ӦdevServerҲ<EFBFBD> <EFBFBD> Ҫ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
"corsU rls" : "http://localhost:8887 " , //跨域地址(前端启动项目,前后端分离单独部署需要设置),多个用","隔开
"corsUrls" : "http://localhost:8887" , //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ַ<EFBFBD> <D6B7> ǰ<EFBFBD> <C7B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ŀ<EFBFBD> <C4BF> ǰ<EFBFBD> <C7B0> <EFBFBD> ˷<EFBFBD> <CBB7> 뵥<EFBFBD> <EBB5A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> ã<EFBFBD> <C3A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ","<22> <> <EFBFBD> <EFBFBD>
"JwtSettings" : {
"JwtSettings" : {
"Issuer" : "ZRAdmin.NET" ,
"Issuer" : "ZRAdmin.NET" ,
"Audience" : "ZRAdmin.NET" ,
"Audience" : "ZRAdmin.NET" ,
"SecretKey" : "SecretKey-ZRADMIN.NET-20210101" ,
"SecretKey" : "SecretKey-ZRADMIN.NET-20210101" ,
"Expire" : 1440 //jwt<EFBFBD> <EFBFBD> ¼<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> 䣨<EFBFBD> ֣<EFBFBD>
"Expire" : 1440 //jwt登录过期时间(分)
} ,
} ,
"DemoMode" : false , //<EFBFBD> Ƿ<EFBFBD> <EFBFBD> <EFBFBD> ʾ ģʽ
"DemoMode" : false , //是否演示模式
"Upload" : {
"Upload" : {
"UploadUrl" : "http://localhost:8888" ,
"UploadUrl" : "http://localhost:8888" ,
"localSavePath" : "" //<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ϴ<EFBFBD> <EFBFBD> ļ<EFBFBD> <EFBFBD> 洢Ŀ¼ /home/website/uploads
"localSavePath" : "" //本地上传文件存储目录 /home/website/uploads
} ,
} ,
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ƴ洢<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//阿里云存储配置
"ALIYUN_OSS" : {
"ALIYUN_OSS" : {
"REGIONID" : "cn-hangzhou" ,
"REGIONID" : "cn-hangzhou" ,
"KEY" : "XX" ,
"KEY" : "XX" ,
"SECRET" : "XX" ,
"SECRET" : "XX" ,
"bucketName" : "bucketName" ,
"bucketName" : "bucketName" ,
"domainUrl" : "http://xxx.xxx.com" //<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Դ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
"domainUrl" : "http://xxx.xxx.com" //访问资源域名
} ,
} ,
"gen" : {
"gen" : {
"conn" : "server =LAPTOP-STKF2M8H\\SQLEXPRESS;u ser=zr;pwd=abc;database=ZrAdmin;Trusted_Connection =SSPI" ,
"conn" : "Data Source =LAPTOP-STKF2M8H\\SQLEXPRESS;U ser ID=sa;Password=zradmin123;Initial Catalog=ZrAdmin;Integrated Security =SSPI" ,
"dbType" : 1 , //MySql = 0, SqlServer = 1
"dbType" : 1 , //MySql = 0, SqlServer = 1
"autoPre" : true , //<EFBFBD> Զ<EFBFBD> ȥ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǰ
"autoPre" : true , //自动去除表前缀
"author" : "admin" ,
"author" : "admin" ,
"tablePrefix" : "sys_" , //"<EFBFBD> <EFBFBD> ǰ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǰ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ö<EFBFBD> <EFBFBD> ŷָ<EFBFBD> <EFBFBD> <EFBFBD> ",
"tablePrefix" : "sys_" , //"表前缀(生成类名不会包含表前缀,多个用逗号分隔) ",
"vuePath" : "" //ǰ<EFBFBD> ˴ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 洢·<EFBFBD> <EFBFBD> eg<EFBFBD> <EFBFBD> D:\Work\ZRAdmin-Vue3
"vuePath" : "" //前端代码存储路径eg: D:\Work\ZRAdmin-Vue3
} ,
} ,
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϣ
//邮箱配置信息
"MailOptions" : {
"MailOptions" : {
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//发送人邮箱
"From" : "" , //eg<EFBFBD> <EFBFBD> xxxx@qq.com
"From" : "" , //eg: xxxx@qq.com
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//发送人邮箱密码
"Password" : "123456" ,
"Password" : "123456" ,
//Э<EFBFBD> <EFBFBD>
//协议
"Smtp" : "smtp.qq.com" ,
"Smtp" : "smtp.qq.com" ,
"Port" : 587
"Port" : 587
} ,
} ,
//redis<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//redis服务配置
"RedisServer" : {
"RedisServer" : {
"Cache" : "127.0.0.1:6379,defaultDatabase=0,poolsize=50,ssl=false,writeBuffer=10240,prefix=cache:" ,
"Cache" : "127.0.0.1:6379,defaultDatabase=0,poolsize=50,ssl=false,writeBuffer=10240,prefix=cache:" ,
"Session" : "127.0.0.1:6379,defaultDatabase=0,poolsize=50,ssl=false,writeBuffer=10240,prefix=session:"
"Session" : "127.0.0.1:6379,defaultDatabase=0,poolsize=50,ssl=false,writeBuffer=10240,prefix=session:"
} ,
} ,
//<EFBFBD> ӿ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//接口请求限制
"IpRateLimiting" : {
"IpRateLimiting" : {
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5<EFBFBD> <EFBFBD> ÿ<EFBFBD> <EFBFBD> <EFBFBD> ӷ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Falseʱ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ŀ<EFBFBD> <EFBFBD> ÿ<EFBFBD> <EFBFBD> <EFBFBD> ӿڶ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ĸ<EFBFBD> <EFBFBD> ӿڣ<EFBFBD> ֻҪ<EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ۼƹ<EFBFBD> 5<EFBFBD> Σ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֹ<EFBFBD> <EFBFBD> <EFBFBD> ʡ<EFBFBD>
//例如设置了5次每分钟访问限流。当False时: 项目中每个接口都加入计数, 不管你访问哪个接口, 只要在一分钟内累计够5次, 将禁止访问。
//True<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5<EFBFBD> <EFBFBD> GetData<EFBFBD> ӿڣ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ýӿڽ<EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڽ<EFBFBD> ֹ<EFBFBD> <EFBFBD> <EFBFBD> ʣ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǻ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Է<EFBFBD> <EFBFBD> <EFBFBD> PostData()5<> <35> ,<2C> ܵ<EFBFBD> <DCB5> <EFBFBD> ˵<EFBFBD> <CBB5> ÿ<EFBFBD> <C3BF> <EFBFBD> ӿڶ<D3BF> <DAB6> <EFBFBD> 5<EFBFBD> <35> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> ӣ<EFBFBD> <D3A3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> š<EFBFBD>
//True: 当一分钟请求了5次GetData接口, 则该接口将在时间段内禁止访问, 但是还可以访问PostData()5次,总得来说是每个接口都有5次在这一分钟, 互不干扰。
"EnableEndpointRateLimiting" : true ,
"EnableEndpointRateLimiting" : true ,
//false<EFBFBD> <EFBFBD> <EFBFBD> ܾ<EFBFBD> <EFBFBD> <EFBFBD> API<EFBFBD> <EFBFBD> <EFBFBD> ò<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӵ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ô<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ;<3B> <> <20> ͻ<EFBFBD> <CDBB> <EFBFBD> ÿ<EFBFBD> 뷢<EFBFBD> <EBB7A2> 3<EFBFBD> <33> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ÿ<EFBFBD> <C3BF> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> õ<EFBFBD> <C3B5> <EFBFBD> <EFBFBD> ƣ<EFBFBD> <C6A3> <EFBFBD> ÿ<EFBFBD> <C3BF> <EFBFBD> ӻ<EFBFBD> ÿ<EFBFBD> <C3BF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ƽ <EFBFBD> <C6BD> <EFBFBD> <EFBFBD> <EFBFBD> ¼<EFBFBD> <C2BC> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> ã<EFBFBD> <C3A3> <EFBFBD> <EFBFBD> ɹ<EFBFBD> <C9B9> <EFBFBD> API<50> <49> <EFBFBD> á<EFBFBD> <C3A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ϣ<EFBFBD> <CFA3> <EFBFBD> <EFBFBD> <EFBFBD> ܾ<EFBFBD> <DCBE> <EFBFBD> API<50> <49> <EFBFBD> ü<EFBFBD> <C3BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʾ <EFBFBD> <CABE> <EFBFBD> <EFBFBD> <EFBFBD> ӣ<EFBFBD> С ʱ<D0A1> ȣ <EFBFBD>
//false, 拒绝的API调用不会添加到调用次数计数器上;如 客户端每秒发出3个请求并且您设置了每秒一个调用的限制, 则每分钟或每天计数器等其他限制将仅记录第一个调用, 即成功的API调用。如果您希望被拒绝的API调用计入其他时间的显示( 分钟, 小时等)
//<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> StackBlockedRequestsΪ true<EFBFBD> <EFBFBD>
//,则必须设置 StackBlockedRequests为 true。
"StackBlockedRequests" : false ,
"StackBlockedRequests" : false ,
"RealIpHeader" : "X-Real-IP" ,
"RealIpHeader" : "X-Real-IP" ,
//ȡ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ŀͻ<EFBFBD> <EFBFBD> <EFBFBD> ID<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ˱<EFBFBD> ͷ<EFBFBD> д<EFBFBD> <EFBFBD> ڿͻ<EFBFBD> <EFBFBD> <EFBFBD> ID<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ClientWhitelist<EFBFBD> <EFBFBD> ָ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵƥ<EFBFBD> 䣬<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ơ<EFBFBD>
//取白名单的客户端ID。如果此标头中存在客户端ID并且与ClientWhitelist中指定的值匹配, 则不应用速率限制。
"ClientIdHeader" : "X-ClientId" ,
"ClientIdHeader" : "X-ClientId" ,
"HttpStatusCode" : 429 ,
"HttpStatusCode" : 429 ,
//<EFBFBD> ˵<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//端点白名单
"EndpointWhitelist" : [ "post:/system/dict/data/types" , "*:/msghub/negotiate" , "*:/LogOut" ] ,
"EndpointWhitelist" : [ "post:/system/dict/data/types" , "*:/msghub/negotiate" , "*:/LogOut" ] ,
//<EFBFBD> ͻ<EFBFBD> <EFBFBD> ˰<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//客户端白名单
//"ClientWhitelist": [ "dev-id-1", "dev-id-2" ],
//"ClientWhitelist": [ "dev-id-1", "dev-id-2" ],
"QuotaExceededResponse" : {
"QuotaExceededResponse" : {
"Content" : "{{\"code\":429,\"msg\":\"<EFBFBD> <EFBFBD> <EFBFBD> ʹ <EFBFBD> <EFBFBD> <EFBFBD> Ƶ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ժ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> \"}}" ,
"Content" : "{{\"code\":429,\"msg\":\"访问过于频繁,请稍后重试 \"}}" ,
"ContentType" : "application/json" ,
"ContentType" : "application/json" ,
"StatusCode" : 429
"StatusCode" : 429
} ,
} ,
//ͨ<EFBFBD> ù<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> api<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ,<2C> <> βһ <CEB2> <D2BB> Ҫ<EFBFBD> <D2AA> *
//通用规则, api规则,结尾一定要带 *
"GeneralRules" : [
"GeneralRules" : [
{
{
"Endpoint" : "*:/captchaImage" ,
"Endpoint" : "*:/captchaImage" ,
//ʱ<EFBFBD> <EFBFBD> <EFBFBD> Σ<EFBFBD> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <EFBFBD> {<7B> <> <EFBFBD> <EFBFBD> }{<7B> <> λ}<7D> <> <EFBFBD> <EFBFBD> ʹ <EFBFBD> õ<EFBFBD> λ<EFBFBD> <CEBB> s, m, h, d
//时间段,格式:{数字}{单位};可使用单位: s, m, h, d
"Period" : "3s" ,
"Period" : "3s" ,
"Limit" : 5
"Limit" : 5
} ,
} ,
{
{
"Endpoint" : "post:*" ,
"Endpoint" : "post:*" ,
//ʱ<EFBFBD> <EFBFBD> <EFBFBD> Σ<EFBFBD> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <EFBFBD> {<7B> <> <EFBFBD> <EFBFBD> }{<7B> <> λ}<7D> <> <EFBFBD> <EFBFBD> ʹ <EFBFBD> õ<EFBFBD> λ<EFBFBD> <CEBB> s, m, h, d
//时间段,格式:{数字}{单位};可使用单位: s, m, h, d
"Period" : "3s" ,
"Period" : "3s" ,
"Limit" : 1
"Limit" : 1
} ,
} ,
{
{
"Endpoint" : "put:*" ,
"Endpoint" : "put:*" ,
//ʱ<EFBFBD> <EFBFBD> <EFBFBD> Σ<EFBFBD> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <EFBFBD> {<7B> <> <EFBFBD> <EFBFBD> }{<7B> <> λ}<7D> <> <EFBFBD> <EFBFBD> ʹ <EFBFBD> õ<EFBFBD> λ<EFBFBD> <CEBB> s, m, h, d
//时间段,格式:{数字}{单位};可使用单位: s, m, h, d
"Period" : "3s" ,
"Period" : "3s" ,
"Limit" : 1
"Limit" : 1
}
}
//{
//{
// "Endpoint": "*",
// "Endpoint": "*",
// //ʱ<EFBFBD> <EFBFBD> <EFBFBD> Σ<EFBFBD> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <EFBFBD> {<7B> <> <EFBFBD> <EFBFBD> }{<7B> <> λ}<7D> <> <EFBFBD> <EFBFBD> ʹ <EFBFBD> õ<EFBFBD> λ<EFBFBD> <CEBB> s, m, h, d
// //时间段,格式:{数字}{单位};可使用单位: s, m, h, d
// "Period": "1s",
// "Period": "1s",
// "Limit": 2
// "Limit": 2
//}
//}
@@ -118,7 +118,7 @@
//}
//}
] ,
] ,
"IpRateLimitPolicies" : {
"IpRateLimitPolicies" : {
//ip<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//ip规则
"IpRules" : [
"IpRules" : [
]
]
}
}