diff --git a/JD.API/Controllers/PlatformSDKController.cs b/JD.API/Controllers/PlatformSDKController.cs index c12c66a5..3f4a927d 100644 --- a/JD.API/Controllers/PlatformSDKController.cs +++ b/JD.API/Controllers/PlatformSDKController.cs @@ -1,6 +1,7 @@ using BBWY.Server.Business; using BBWY.Server.Model; using BBWY.Server.Model.Dto; +using JD.API.Filters; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json.Linq; diff --git a/JD.API/Filters/YunDingFilterAttribute.cs b/JD.API/Filters/YunDingFilterAttribute.cs new file mode 100644 index 00000000..3f93f39d --- /dev/null +++ b/JD.API/Filters/YunDingFilterAttribute.cs @@ -0,0 +1,40 @@ +using BBWY.Common.Models; +using BBWY.Server.Business; +using BBWY.Server.Model; +using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Primitives; + +namespace JD.API.Filters +{ + public class YunDingFilterAttribute : ActionFilterAttribute + { + private IConfiguration configuration; + private YunDingBusiness yunDingBusiness; + + + public YunDingFilterAttribute(IConfiguration configuration, YunDingBusiness yunDingBusiness) + { + this.configuration = configuration; + this.yunDingBusiness = yunDingBusiness; + } + + public override void OnActionExecuted(ActionExecutedContext context) + { + + } + + public override void OnActionExecuting(ActionExecutingContext context) + { + var platform = (Enums.Platform)int.Parse(configuration.GetSection("ValidatePlatformKey").Value); + if (platform == Enums.Platform.京东) + { + if (!context.HttpContext.Request.Headers.TryGetValue("YunDingKey", out StringValues yundingKey)) + throw new BusinessException("YunDingKey获取失败"); + + if (yunDingBusiness.GetKey() != yundingKey.ToString()) + throw new BusinessException("YunDingKey验证失败"); + } + } + } +} diff --git a/JD.API/appsettings.json b/JD.API/appsettings.json index 5518a7eb..746b7356 100644 --- a/JD.API/appsettings.json +++ b/JD.API/appsettings.json @@ -10,5 +10,6 @@ "DB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwy_test;charset=utf8;sslmode=none;", }, "IsEnableSwagger": false, - "AllowedHosts": "*" + "AllowedHosts": "*", + "ValidatePlatformKey": 1 }