瀏覽代碼

😎优化ReZero超级API集成

zuohuaijun 2 年之前
父節點
當前提交
8298d456ab

+ 3 - 0
Admin.NET/Admin.NET.Web.Entry/Resources/Lang.en.resx

@@ -117,6 +117,9 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <data name="Admin.NET 通用权限开发平台" xml:space="preserve">
+    <value>Admin NET General Permission Development Platform</value>
+  </data>
   <data name="API 接口" xml:space="preserve">
     <value>API Interfaces</value>
   </data>

+ 3 - 0
Admin.NET/Admin.NET.Web.Entry/Resources/Lang.zh-CN.resx

@@ -117,6 +117,9 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <data name="Admin NET General Permission Development Platform" xml:space="preserve">
+    <value>Admin.NET 通用权限开发平台</value>
+  </data>
   <data name="API Interfaces" xml:space="preserve">
     <value>API 接口</value>
   </data>

+ 3 - 3
Admin.NET/Plugins/Admin.NET.Plugin.ReZero/Admin.NET.Plugin.ReZero.csproj

@@ -24,11 +24,11 @@
   </ItemGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\..\Admin.NET.Core\Admin.NET.Core.csproj" />
-  </ItemGroup>
+    <PackageReference Include="Rezero.Api" Version="1.0.7" />
+  </ItemGroup>  
 
   <ItemGroup>
-    <PackageReference Include="Rezero.Api" Version="1.0.5" />
+    <ProjectReference Include="..\..\Admin.NET.Core\Admin.NET.Core.csproj" />
   </ItemGroup>
 
 </Project>

+ 5 - 5
Admin.NET/Plugins/Admin.NET.Plugin.ReZero/SeedData/SysMenuSeedData.cs

@@ -22,11 +22,11 @@ public class SysMenuSeedData : ISqlSugarEntitySeedData<SysMenu>
         return new[]
         {
             new SysMenu{ Id=1310000000651, Pid=1310000000601, Title="超级API", Path="/develop/reZero", Name="sysReZero", Component="Layout", Icon="ele-MagicStick", Type=MenuTypeEnum.Dir, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=140 },
-            new SysMenu{ Id=1310000000655, Pid=1310000000651, Title="数据库管理", Path="/develop/reZero/database", Name="sysReZeroDatabase", Component="layout/routerView/iframe", Icon="ele-Menu", Type=MenuTypeEnum.Menu, IsIframe=true, OutLink="http://localhost:5005/rezero/database_manager.html", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
-            new SysMenu{ Id=1310000000660, Pid=1310000000651, Title="实体表管理", Path="/develop/reZero/entity", Name="sysReZeroEntity", Component="layout/routerView/iframe", Icon="ele-Menu", Type=MenuTypeEnum.Menu, IsIframe=true, OutLink="http://localhost:5005/rezero/entity_manager.html", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=110 },
-            new SysMenu{ Id=1310000000665, Pid=1310000000651, Title="接口分类", Path="/develop/reZero/apiCategory", Name="sysReZeroApiCategory", Component="layout/routerView/iframe", Icon="ele-Menu", Type=MenuTypeEnum.Menu, IsIframe=true, OutLink="http://localhost:5005/rezero/interface_categroy.html", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=120 },
-            new SysMenu{ Id=1310000000670, Pid=1310000000651, Title="接口定义", Path="/develop/reZero/apiDefine", Name="sysReZeroApiDefine", Component="layout/routerView/iframe", Icon="ele-Menu", Type=MenuTypeEnum.Menu, IsIframe=true, OutLink="http://localhost:5005/rezero/interface_manager.html", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=130 },
-            new SysMenu{ Id=1310000000675, Pid=1310000000651, Title="动态接口", Path="/develop/reZero/dynamicApi", Name="sysReZeroDynamicApi", Component="layout/routerView/iframe", Icon="ele-Menu", Type=MenuTypeEnum.Menu, IsIframe=true, OutLink="http://localhost:5005/rezero/dynamic_interface.html", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=140 },
+            new SysMenu{ Id=1310000000655, Pid=1310000000651, Title="数据库管理", Path="/develop/reZero/database", Name="sysReZeroDatabase", Component="layout/routerView/iframe", Icon="ele-Menu", Type=MenuTypeEnum.Menu, IsIframe=true, OutLink="http://localhost:5005/rezero/database_manager.html?model=small", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
+            new SysMenu{ Id=1310000000660, Pid=1310000000651, Title="实体表管理", Path="/develop/reZero/entity", Name="sysReZeroEntity", Component="layout/routerView/iframe", Icon="ele-Menu", Type=MenuTypeEnum.Menu, IsIframe=true, OutLink="http://localhost:5005/rezero/entity_manager.html?model=small", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=110 },
+            new SysMenu{ Id=1310000000665, Pid=1310000000651, Title="接口分类", Path="/develop/reZero/apiCategory", Name="sysReZeroApiCategory", Component="layout/routerView/iframe", Icon="ele-Menu", Type=MenuTypeEnum.Menu, IsIframe=true, OutLink="http://localhost:5005/rezero/interface_categroy.html?model=small", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=120 },
+            new SysMenu{ Id=1310000000670, Pid=1310000000651, Title="接口定义", Path="/develop/reZero/apiDefine", Name="sysReZeroApiDefine", Component="layout/routerView/iframe", Icon="ele-Menu", Type=MenuTypeEnum.Menu, IsIframe=true, OutLink="http://localhost:5005/rezero/interface_manager.html?model=small", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=130 },
+            new SysMenu{ Id=1310000000675, Pid=1310000000651, Title="动态接口", Path="/develop/reZero/dynamicApi", Name="sysReZeroDynamicApi", Component="layout/routerView/iframe", Icon="ele-Menu", Type=MenuTypeEnum.Menu, IsIframe=true, OutLink="http://localhost:5005/rezero/dynamic_interface.html?model=small", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=140 },
         };
     }
 }

+ 40 - 0
Admin.NET/Plugins/Admin.NET.Plugin.ReZero/Service/SuperApiAop.cs

@@ -0,0 +1,40 @@
+// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
+//
+// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
+//
+// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
+
+using Furion.FriendlyException;
+using Microsoft.AspNetCore.Authentication;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
+using ReZero.SuperAPI;
+
+namespace Admin.NET.Plugin.ReZero.Service;
+
+/// <summary>
+/// 超级API接口拦截器
+/// </summary>
+public class SuperApiAop : DefaultSuperApiAop
+{
+    public override async Task OnExecutingAsync(InterfaceContext aopContext)
+    {
+        if (aopContext.InterfaceType == InterfaceType.DynamicApi)
+        {
+            var authenticateResult = await aopContext.HttpContext.AuthenticateAsync(JwtBearerDefaults.AuthenticationScheme);
+            if (!authenticateResult.Succeeded)
+                throw Oops.Oh("没权限 Unauthorized");
+        }
+
+        await base.OnExecutingAsync(aopContext);
+    }
+
+    public override async Task OnExecutedAsync(InterfaceContext aopContext)
+    {
+        await base.OnExecutedAsync(aopContext);
+    }
+
+    public override async Task OnErrorAsync(InterfaceContext aopContext)
+    {
+        await base.OnErrorAsync(aopContext);
+    }
+}

+ 7 - 1
Admin.NET/Plugins/Admin.NET.Plugin.ReZero/Startup.cs

@@ -5,6 +5,8 @@
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
 using Admin.NET.Core;
+using Admin.NET.Plugin.ReZero.Service;
+using Furion.Localization;
 using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.Extensions.DependencyInjection;
@@ -30,7 +32,11 @@ public class Startup : AppStartup
                     ConnectionString = dbOptions.ConnectionConfigs[0].ConnectionString
                 }
             },
-            UiOptions = new UiOptions() { DefaultIndexSource = "/index.html" }
+            UiOptions = new UiOptions() { DefaultIndexSource = "/index.html" },
+            InterfaceOptions = new InterfaceOptions()
+            {
+                SuperApiAop = new SuperApiAop() // 授权拦截器
+            }
         };
 
         // 注册超级API