From 88698e0a6fc7b6407b1edb536d02eab1ce51f2fb Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 20 Oct 2020 12:08:43 +0800 Subject: [PATCH 1/6] Add XSRF-TOKEN to Swagger UI Requests --- ...yCompanyName.MyProjectName.Web.Host.csproj | 5 + .../MyProjectNameWebModule.cs | 2 + .../wwwroot/swagger/ui/index.html | 95 +++++++++++++++++++ .../MyCompanyName.MyProjectName.Web.csproj | 5 + .../MyProjectNameWebModule.cs | 2 + .../wwwroot/swagger/ui/index.html | 95 +++++++++++++++++++ ...yCompanyName.MyProjectName.Web.Host.csproj | 5 + .../MyProjectNameWebHostModule.cs | 4 +- .../wwwroot/swagger/ui/index.html | 95 +++++++++++++++++++ ...mpanyName.MyProjectName.Web.Unified.csproj | 5 + .../MyProjectNameWebUnifiedModule.cs | 2 + .../wwwroot/swagger/ui/index.html | 95 +++++++++++++++++++ 12 files changed, 409 insertions(+), 1 deletion(-) create mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html create mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/swagger/ui/index.html create mode 100644 templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html create mode 100644 templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/wwwroot/swagger/ui/index.html diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index 76cf3e434e..93b138d26c 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -43,6 +43,11 @@ + + + true + PreserveNewest + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs index 23423673e0..56d271c77b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs @@ -1,6 +1,7 @@ using System; using System.IO; using System.Linq; +using System.Reflection; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication.OAuth.Claims; using Microsoft.AspNetCore.Authentication.OpenIdConnect; @@ -242,6 +243,7 @@ namespace MyCompanyName.MyProjectName.Web app.UseSwagger(); app.UseSwaggerUI(options => { + options.IndexStream = () => Assembly.GetExecutingAssembly().GetManifestResourceStream("MyCompanyName.MyProjectName.Web.wwwroot.swagger.ui.index.html"); options.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API"); }); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html new file mode 100644 index 0000000000..fb93b27006 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html @@ -0,0 +1,95 @@ + + + + + + %(DocumentTitle) + + + + + + %(HeadContent) + + + + +
+ + + + + + + + + + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index c4a512d70b..17811e4bd6 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -20,6 +20,11 @@ + + + true + PreserveNewest +
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs index 10aa1269c9..ef5391ec2e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Reflection; using Localization.Resources.AbpUi; using Microsoft.AspNetCore; using Microsoft.AspNetCore.Builder; @@ -216,6 +217,7 @@ namespace MyCompanyName.MyProjectName.Web app.UseSwagger(); app.UseSwaggerUI(options => { + options.IndexStream = () => Assembly.GetExecutingAssembly().GetManifestResourceStream("MyCompanyName.MyProjectName.Web.wwwroot.swagger.ui.index.html"); options.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API"); }); app.UseAuditing(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/swagger/ui/index.html b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/swagger/ui/index.html new file mode 100644 index 0000000000..fb93b27006 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/swagger/ui/index.html @@ -0,0 +1,95 @@ + + + + + + %(DocumentTitle) + + + + + + %(HeadContent) + + + + +
+ + + + + + + + + + + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index 2704f9e3af..a00d671439 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -41,6 +41,11 @@ + + + true + PreserveNewest +
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs index dae455f1a9..cdabb4c9bd 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.OpenApi.Models; using System.IO; +using System.Reflection; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.OpenIdConnect; @@ -247,7 +248,8 @@ namespace MyCompanyName.MyProjectName app.UseSwagger(); app.UseSwaggerUI(options => { - options.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API"); + options.IndexStream = () => Assembly.GetExecutingAssembly().GetManifestResourceStream("MyCompanyName.MyProjectName.wwwroot.swagger.ui.index.html"); + options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support APP API"); }); app.UseAuditing(); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html new file mode 100644 index 0000000000..9eb7300060 --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html @@ -0,0 +1,95 @@ + + + + + + %(DocumentTitle) + + + + + + %(HeadContent) + + + + +
+ + + + + + + + + + + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj index bc30c48299..a84a7b773d 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj @@ -48,6 +48,11 @@ + + + true + PreserveNewest +
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs index 773632b36a..a94c2e330e 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs @@ -1,4 +1,5 @@ using System.IO; +using System.Reflection; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; @@ -145,6 +146,7 @@ namespace MyCompanyName.MyProjectName app.UseSwagger(); app.UseSwaggerUI(options => { + options.IndexStream = () => Assembly.GetExecutingAssembly().GetManifestResourceStream("MyCompanyName.MyProjectName.wwwroot.swagger.ui.index.html"); options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support APP API"); }); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/wwwroot/swagger/ui/index.html b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/wwwroot/swagger/ui/index.html new file mode 100644 index 0000000000..9eb7300060 --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/wwwroot/swagger/ui/index.html @@ -0,0 +1,95 @@ + + + + + + %(DocumentTitle) + + + + + + %(HeadContent) + + + + +
+ + + + + + + + + + + + From f95fdcb38972de02aa64dffa7d955b3255d10deb Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 23 Oct 2020 15:13:21 +0800 Subject: [PATCH 2/6] Add AbpSwaggerModule --- framework/Volo.Abp.sln | 7 ++ .../Builder/AbpSwaggerUIBuilderExtensions.cs | 24 +++++ .../Volo.Abp.Swagger/Volo.Abp.Swagger.csproj | 27 ++++++ .../Volo/Abp/AbpSwaggerModule.cs | 17 ++++ .../wwwroot/swagger/ui/index.html | 2 +- ...yCompanyName.MyProjectName.Web.Host.csproj | 7 +- .../MyProjectNameWebModule.cs | 15 +-- .../MyCompanyName.MyProjectName.Web.csproj | 7 +- .../MyProjectNameWebModule.cs | 10 +- .../wwwroot/swagger/ui/index.html | 95 ------------------- ...nyName.MyProjectName.IdentityServer.csproj | 2 +- .../MyProjectNameIdentityServerModule.cs | 5 +- ...yCompanyName.MyProjectName.Web.Host.csproj | 7 +- .../MyProjectNameWebHostModule.cs | 6 +- .../wwwroot/swagger/ui/index.html | 95 ------------------- ...mpanyName.MyProjectName.Web.Unified.csproj | 6 +- .../MyProjectNameWebUnifiedModule.cs | 6 +- .../wwwroot/swagger/ui/index.html | 95 ------------------- 18 files changed, 96 insertions(+), 337 deletions(-) create mode 100644 framework/src/Volo.Abp.Swagger/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs create mode 100644 framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj create mode 100644 framework/src/Volo.Abp.Swagger/Volo/Abp/AbpSwaggerModule.cs rename {templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host => framework/src/Volo.Abp.Swagger}/wwwroot/swagger/ui/index.html (98%) delete mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/swagger/ui/index.html delete mode 100644 templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html delete mode 100644 templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/wwwroot/swagger/ui/index.html diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln index 50320b645f..6980eec785 100644 --- a/framework/Volo.Abp.sln +++ b/framework/Volo.Abp.sln @@ -351,6 +351,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.EventBus.Rebus", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.ExceptionHandling", "src\Volo.Abp.ExceptionHandling\Volo.Abp.ExceptionHandling.csproj", "{B9D1ADCB-D552-4626-A1F1-78FF72C1E822}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Swagger", "src\Volo.Abp.Swagger\Volo.Abp.Swagger.csproj", "{DD9519E0-5A68-48DC-A051-7BF2AC922F3E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1045,6 +1047,10 @@ Global {B9D1ADCB-D552-4626-A1F1-78FF72C1E822}.Debug|Any CPU.Build.0 = Debug|Any CPU {B9D1ADCB-D552-4626-A1F1-78FF72C1E822}.Release|Any CPU.ActiveCfg = Release|Any CPU {B9D1ADCB-D552-4626-A1F1-78FF72C1E822}.Release|Any CPU.Build.0 = Release|Any CPU + {DD9519E0-5A68-48DC-A051-7BF2AC922F3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD9519E0-5A68-48DC-A051-7BF2AC922F3E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD9519E0-5A68-48DC-A051-7BF2AC922F3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD9519E0-5A68-48DC-A051-7BF2AC922F3E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1222,6 +1228,7 @@ Global {DEFE3DB2-EA4F-4F90-87FC-B25D64427BC5} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} {F689967F-1EF1-4D75-8BA4-2F2F3506B1F3} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} {B9D1ADCB-D552-4626-A1F1-78FF72C1E822} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} + {DD9519E0-5A68-48DC-A051-7BF2AC922F3E} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5} diff --git a/framework/src/Volo.Abp.Swagger/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs b/framework/src/Volo.Abp.Swagger/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs new file mode 100644 index 0000000000..243a8cebb3 --- /dev/null +++ b/framework/src/Volo.Abp.Swagger/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs @@ -0,0 +1,24 @@ +using System; +using Microsoft.Extensions.DependencyInjection; +using Swashbuckle.AspNetCore.SwaggerUI; +using Volo.Abp.VirtualFileSystem; + +namespace Microsoft.AspNetCore.Builder +{ + public static class AbpSwaggerUIBuilderExtensions + { + public static IApplicationBuilder UseAbpSwaggerUI( + this IApplicationBuilder app, + Action setupAction = null) + { + var fileProvider = app.ApplicationServices.GetService(); + + return app.UseSwaggerUI(options => + { + options.IndexStream = () => fileProvider.GetFileInfo("/wwwroot/swagger/ui/index.html").CreateReadStream(); + + setupAction?.Invoke(options); + }); + } + } +} diff --git a/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj b/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj new file mode 100644 index 0000000000..0e299271bc --- /dev/null +++ b/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj @@ -0,0 +1,27 @@ + + + + netstandard2.0 + Volo.Abp.Swagger + Volo.Abp.Swagger + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + false + false + + + + + + + + + + + + + + + + + diff --git a/framework/src/Volo.Abp.Swagger/Volo/Abp/AbpSwaggerModule.cs b/framework/src/Volo.Abp.Swagger/Volo/Abp/AbpSwaggerModule.cs new file mode 100644 index 0000000000..5cd998eea4 --- /dev/null +++ b/framework/src/Volo.Abp.Swagger/Volo/Abp/AbpSwaggerModule.cs @@ -0,0 +1,17 @@ +using Volo.Abp.Modularity; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp +{ + [DependsOn(typeof(AbpVirtualFileSystemModule))] + public class AbpSwaggerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html b/framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/index.html similarity index 98% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html rename to framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/index.html index fb93b27006..9dd9371ab0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html +++ b/framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/index.html @@ -1,4 +1,4 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index 93b138d26c..d2a7ce6f8f 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -18,7 +18,6 @@ - @@ -31,6 +30,7 @@ + @@ -43,11 +43,6 @@ - - - true - PreserveNewest -
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs index 56d271c77b..f30cecd20b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs @@ -1,28 +1,19 @@ using System; using System.IO; -using System.Linq; -using System.Reflection; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Authentication.OAuth.Claims; -using Microsoft.AspNetCore.Authentication.OpenIdConnect; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Options; using Microsoft.IdentityModel.Protocols.OpenIdConnect; using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.MultiTenancy; using MyCompanyName.MyProjectName.Web.Menus; using StackExchange.Redis; using Microsoft.OpenApi.Models; -using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; -using Volo.Abp.AspNetCore.Authentication.OAuth; using Volo.Abp.AspNetCore.Authentication.OpenIdConnect; -using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.AspNetCore.Mvc.Client; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI; @@ -60,7 +51,8 @@ namespace MyCompanyName.MyProjectName.Web typeof(AbpHttpClientIdentityModelWebModule), typeof(AbpIdentityWebModule), typeof(AbpTenantManagementWebModule), - typeof(AbpAspNetCoreSerilogModule) + typeof(AbpAspNetCoreSerilogModule), + typeof(AbpSwaggerModule) )] public class MyProjectNameWebModule : AbpModule { @@ -241,9 +233,8 @@ namespace MyCompanyName.MyProjectName.Web app.UseAuthorization(); app.UseSwagger(); - app.UseSwaggerUI(options => + app.UseAbpSwaggerUI(options => { - options.IndexStream = () => Assembly.GetExecutingAssembly().GetManifestResourceStream("MyCompanyName.MyProjectName.Web.wwwroot.swagger.ui.index.html"); options.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API"); }); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index 17811e4bd6..7ba850973e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -20,11 +20,6 @@ - - - true - PreserveNewest - @@ -39,7 +34,6 @@ - @@ -49,6 +43,7 @@ + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs index ef5391ec2e..1f508466ce 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs @@ -1,8 +1,5 @@ using System; using System.IO; -using System.Reflection; -using Localization.Resources.AbpUi; -using Microsoft.AspNetCore; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; @@ -13,7 +10,6 @@ using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.MultiTenancy; using MyCompanyName.MyProjectName.Web.Menus; using Microsoft.OpenApi.Models; -using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; using Volo.Abp.Account.Web; using Volo.Abp.AspNetCore.Authentication.JwtBearer; @@ -50,7 +46,8 @@ namespace MyCompanyName.MyProjectName.Web typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AbpTenantManagementWebModule), - typeof(AbpAspNetCoreSerilogModule) + typeof(AbpAspNetCoreSerilogModule), + typeof(AbpSwaggerModule) )] public class MyProjectNameWebModule : AbpModule { @@ -215,9 +212,8 @@ namespace MyCompanyName.MyProjectName.Web app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); - app.UseSwaggerUI(options => + app.UseAbpSwaggerUI(options => { - options.IndexStream = () => Assembly.GetExecutingAssembly().GetManifestResourceStream("MyCompanyName.MyProjectName.Web.wwwroot.swagger.ui.index.html"); options.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API"); }); app.UseAuditing(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/swagger/ui/index.html b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/swagger/ui/index.html deleted file mode 100644 index fb93b27006..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/swagger/ui/index.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - %(DocumentTitle) - - - - - - %(HeadContent) - - - - -
- - - - - - - - - - - - diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj index 8ac3387302..7d8e1359a8 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj @@ -10,7 +10,6 @@ - @@ -21,6 +20,7 @@ + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs index bb77565ecd..973eb1f4d7 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs @@ -74,7 +74,8 @@ namespace MyCompanyName.MyProjectName typeof(AbpTenantManagementHttpApiModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(MyProjectNameApplicationContractsModule), - typeof(AbpAspNetCoreSerilogModule) + typeof(AbpAspNetCoreSerilogModule), + typeof(AbpSwaggerModule) )] public class MyProjectNameIdentityServerModule : AbpModule { @@ -200,7 +201,7 @@ namespace MyCompanyName.MyProjectName app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); - app.UseSwaggerUI(options => + app.UseAbpSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support APP API"); }); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index a00d671439..44702c78f6 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -12,7 +12,6 @@ - @@ -21,6 +20,7 @@ + @@ -41,11 +41,6 @@ - - - true - PreserveNewest - diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs index cdabb4c9bd..f072732f06 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs @@ -66,7 +66,8 @@ namespace MyCompanyName.MyProjectName typeof(AbpTenantManagementWebModule), typeof(AbpTenantManagementHttpApiClientModule), typeof(AbpPermissionManagementHttpApiClientModule), - typeof(AbpAspNetCoreSerilogModule) + typeof(AbpAspNetCoreSerilogModule), + typeof(AbpSwaggerModule) )] public class MyProjectNameWebHostModule : AbpModule { @@ -246,9 +247,8 @@ namespace MyCompanyName.MyProjectName app.UseAuthorization(); app.UseSwagger(); - app.UseSwaggerUI(options => + app.UseAbpSwaggerUI(options => { - options.IndexStream = () => Assembly.GetExecutingAssembly().GetManifestResourceStream("MyCompanyName.MyProjectName.wwwroot.swagger.ui.index.html"); options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support APP API"); }); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html deleted file mode 100644 index 9eb7300060..0000000000 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/wwwroot/swagger/ui/index.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - %(DocumentTitle) - - - - - - %(HeadContent) - - - - -
- - - - - - - - - - - - diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj index a84a7b773d..5e8df56439 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj @@ -18,6 +18,7 @@ + @@ -48,11 +49,6 @@ - - - true - PreserveNewest -
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs index a94c2e330e..726b49d6d9 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs @@ -62,7 +62,8 @@ namespace MyCompanyName.MyProjectName typeof(AbpTenantManagementApplicationModule), typeof(AbpTenantManagementEntityFrameworkCoreModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), - typeof(AbpAspNetCoreSerilogModule) + typeof(AbpAspNetCoreSerilogModule), + typeof(AbpSwaggerModule) )] public class MyProjectNameWebUnifiedModule : AbpModule { @@ -144,9 +145,8 @@ namespace MyCompanyName.MyProjectName app.UseAuthorization(); app.UseSwagger(); - app.UseSwaggerUI(options => + app.UseAbpSwaggerUI(options => { - options.IndexStream = () => Assembly.GetExecutingAssembly().GetManifestResourceStream("MyCompanyName.MyProjectName.wwwroot.swagger.ui.index.html"); options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support APP API"); }); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/wwwroot/swagger/ui/index.html b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/wwwroot/swagger/ui/index.html deleted file mode 100644 index 9eb7300060..0000000000 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/wwwroot/swagger/ui/index.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - %(DocumentTitle) - - - - - - %(HeadContent) - - - - -
- - - - - - - - - - - - From 8e7078f264c0b001a1b6ce7db8091fc37924d36f Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 23 Oct 2020 15:16:05 +0800 Subject: [PATCH 3/6] Import common.props --- framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj b/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj index 0e299271bc..e9f4287b30 100644 --- a/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj +++ b/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj @@ -1,5 +1,7 @@ + + netstandard2.0 Volo.Abp.Swagger From 7802b8102cfe81f9cdc9d2d4871ed02040dc2b05 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 23 Oct 2020 16:25:18 +0800 Subject: [PATCH 4/6] Add SwaggerHtmlResolver --- .../Builder/AbpSwaggerUIBuilderExtensions.cs | 8 +- .../Volo.Abp.Swagger/Volo.Abp.Swagger.csproj | 6 +- .../Volo/Abp/ISwaggerHtmlResolver.cs | 9 ++ .../Volo/Abp/SwaggerHtmlResolver.cs | 23 +++++ .../wwwroot/swagger/ui/abp.swagger.js | 14 +++ .../wwwroot/swagger/ui/index.html | 95 ------------------- nupkg/common.ps1 | 1 + .../MyProjectNameWebHostModule.cs | 2 +- 8 files changed, 56 insertions(+), 102 deletions(-) create mode 100644 framework/src/Volo.Abp.Swagger/Volo/Abp/ISwaggerHtmlResolver.cs create mode 100644 framework/src/Volo.Abp.Swagger/Volo/Abp/SwaggerHtmlResolver.cs create mode 100644 framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/abp.swagger.js delete mode 100644 framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/index.html diff --git a/framework/src/Volo.Abp.Swagger/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs b/framework/src/Volo.Abp.Swagger/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs index 243a8cebb3..f562dfb202 100644 --- a/framework/src/Volo.Abp.Swagger/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs +++ b/framework/src/Volo.Abp.Swagger/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs @@ -1,7 +1,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using Swashbuckle.AspNetCore.SwaggerUI; -using Volo.Abp.VirtualFileSystem; +using Volo.Abp; namespace Microsoft.AspNetCore.Builder { @@ -11,11 +11,13 @@ namespace Microsoft.AspNetCore.Builder this IApplicationBuilder app, Action setupAction = null) { - var fileProvider = app.ApplicationServices.GetService(); + var resolver = app.ApplicationServices.GetService(); return app.UseSwaggerUI(options => { - options.IndexStream = () => fileProvider.GetFileInfo("/wwwroot/swagger/ui/index.html").CreateReadStream(); + options.InjectJavascript("/libs/abp/core/abp.js"); + options.InjectJavascript("/swagger/ui/abp.swagger.js"); + options.IndexStream = () => resolver.Resolver(); setupAction?.Invoke(options); }); diff --git a/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj b/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj index e9f4287b30..62c580f0b5 100644 --- a/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj +++ b/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj @@ -18,12 +18,12 @@
- - + - + + diff --git a/framework/src/Volo.Abp.Swagger/Volo/Abp/ISwaggerHtmlResolver.cs b/framework/src/Volo.Abp.Swagger/Volo/Abp/ISwaggerHtmlResolver.cs new file mode 100644 index 0000000000..f22a03268c --- /dev/null +++ b/framework/src/Volo.Abp.Swagger/Volo/Abp/ISwaggerHtmlResolver.cs @@ -0,0 +1,9 @@ +using System.IO; + +namespace Volo.Abp +{ + public interface ISwaggerHtmlResolver + { + Stream Resolver(); + } +} diff --git a/framework/src/Volo.Abp.Swagger/Volo/Abp/SwaggerHtmlResolver.cs b/framework/src/Volo.Abp.Swagger/Volo/Abp/SwaggerHtmlResolver.cs new file mode 100644 index 0000000000..e447ddad16 --- /dev/null +++ b/framework/src/Volo.Abp.Swagger/Volo/Abp/SwaggerHtmlResolver.cs @@ -0,0 +1,23 @@ +using System.IO; +using System.Reflection; +using System.Text; +using Swashbuckle.AspNetCore.SwaggerUI; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp +{ + public class SwaggerHtmlResolver : ISwaggerHtmlResolver, ITransientDependency + { + public virtual Stream Resolver() + { + var stream = typeof(SwaggerUIOptions).GetTypeInfo().Assembly + .GetManifestResourceStream("Swashbuckle.AspNetCore.SwaggerUI.index.html"); + + var html = new StreamReader(stream) + .ReadToEnd() + .Replace("SwaggerUIBundle(configObject)", "AbpSwaggerUIBundle(configObject)"); + + return new MemoryStream(Encoding.UTF8.GetBytes(html)); + } + } +} diff --git a/framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/abp.swagger.js b/framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/abp.swagger.js new file mode 100644 index 0000000000..758a7fc959 --- /dev/null +++ b/framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/abp.swagger.js @@ -0,0 +1,14 @@ +function AbpSwaggerUIBundle(configObject) { + configObject.requestInterceptor = function (request) { + var token = abp.auth.getToken(); + request.headers.Authorization = token ? "Bearer " + token : null; + var antiForgeryToken = abp.security.antiForgery.getToken(); + if (antiForgeryToken) { + request.headers[abp.security.antiForgery.tokenHeaderName] = antiForgeryToken; + } + return request; + }; + + return SwaggerUIBundle(configObject); +} + diff --git a/framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/index.html b/framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/index.html deleted file mode 100644 index 9dd9371ab0..0000000000 --- a/framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/index.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - %(DocumentTitle) - - - - - - %(HeadContent) - - - - -
- - - - - - - - - - - - diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index f96ee7484b..bbf73de7bb 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -136,6 +136,7 @@ $projects = ( "framework/src/Volo.Abp.Validation", "framework/src/Volo.Abp.VirtualFileSystem", "framework/src/Volo.Abp.Kafka", + "framework/src/Volo.Abp.Swagger", # modules/account "modules/account/src/Volo.Abp.Account.Application.Contracts", diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs index f072732f06..06e65a1192 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs @@ -249,7 +249,7 @@ namespace MyCompanyName.MyProjectName app.UseSwagger(); app.UseAbpSwaggerUI(options => { - options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support APP API"); + options.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API"); }); app.UseAuditing(); From 0518d1289fdc74196fea3878ccaffdd3eb56d8a9 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 23 Oct 2020 17:07:33 +0800 Subject: [PATCH 5/6] Rename abp.abp.swagger to volo.abp.swashbuckle --- framework/Volo.Abp.sln | 2 +- .../wwwroot/swagger/ui/abp.swagger.js | 14 -------------- .../Builder/AbpSwaggerUIBuilderExtensions.cs | 1 + .../Volo.Abp.Swashbuckle.csproj} | 3 +-- .../Abp/Swashbuckle/AbpSwashbuckleModule.cs} | 6 +++--- .../Abp/Swashbuckle}/ISwaggerHtmlResolver.cs | 2 +- .../Abp/Swashbuckle}/SwaggerHtmlResolver.cs | 4 ++-- .../wwwroot/swagger/ui/abp.swagger.js | 17 +++++++++++++++++ nupkg/common.ps1 | 2 +- .../MyCompanyName.MyProjectName.Web.Host.csproj | 2 +- .../MyProjectNameWebModule.cs | 3 ++- .../MyCompanyName.MyProjectName.Web.csproj | 2 +- .../MyProjectNameWebModule.cs | 3 ++- ...panyName.MyProjectName.IdentityServer.csproj | 2 +- .../MyProjectNameIdentityServerModule.cs | 3 ++- .../MyCompanyName.MyProjectName.Web.Host.csproj | 2 +- .../MyProjectNameWebHostModule.cs | 2 +- ...CompanyName.MyProjectName.Web.Unified.csproj | 2 +- .../MyProjectNameWebUnifiedModule.cs | 3 ++- 19 files changed, 41 insertions(+), 34 deletions(-) delete mode 100644 framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/abp.swagger.js rename framework/src/{Volo.Abp.Swagger => Volo.Abp.Swashbuckle}/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs (96%) rename framework/src/{Volo.Abp.Swagger/Volo.Abp.Swagger.csproj => Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj} (90%) rename framework/src/{Volo.Abp.Swagger/Volo/Abp/AbpSwaggerModule.cs => Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleModule.cs} (68%) rename framework/src/{Volo.Abp.Swagger/Volo/Abp => Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle}/ISwaggerHtmlResolver.cs (77%) rename framework/src/{Volo.Abp.Swagger/Volo/Abp => Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle}/SwaggerHtmlResolver.cs (82%) create mode 100644 framework/src/Volo.Abp.Swashbuckle/wwwroot/swagger/ui/abp.swagger.js diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln index 6980eec785..e922ac7f8d 100644 --- a/framework/Volo.Abp.sln +++ b/framework/Volo.Abp.sln @@ -351,7 +351,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.EventBus.Rebus", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.ExceptionHandling", "src\Volo.Abp.ExceptionHandling\Volo.Abp.ExceptionHandling.csproj", "{B9D1ADCB-D552-4626-A1F1-78FF72C1E822}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Swagger", "src\Volo.Abp.Swagger\Volo.Abp.Swagger.csproj", "{DD9519E0-5A68-48DC-A051-7BF2AC922F3E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Swashbuckle", "src\Volo.Abp.Swashbuckle\Volo.Abp.Swashbuckle.csproj", "{DD9519E0-5A68-48DC-A051-7BF2AC922F3E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/abp.swagger.js b/framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/abp.swagger.js deleted file mode 100644 index 758a7fc959..0000000000 --- a/framework/src/Volo.Abp.Swagger/wwwroot/swagger/ui/abp.swagger.js +++ /dev/null @@ -1,14 +0,0 @@ -function AbpSwaggerUIBundle(configObject) { - configObject.requestInterceptor = function (request) { - var token = abp.auth.getToken(); - request.headers.Authorization = token ? "Bearer " + token : null; - var antiForgeryToken = abp.security.antiForgery.getToken(); - if (antiForgeryToken) { - request.headers[abp.security.antiForgery.tokenHeaderName] = antiForgeryToken; - } - return request; - }; - - return SwaggerUIBundle(configObject); -} - diff --git a/framework/src/Volo.Abp.Swagger/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs b/framework/src/Volo.Abp.Swashbuckle/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs similarity index 96% rename from framework/src/Volo.Abp.Swagger/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs rename to framework/src/Volo.Abp.Swashbuckle/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs index f562dfb202..4ea501626b 100644 --- a/framework/src/Volo.Abp.Swagger/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs +++ b/framework/src/Volo.Abp.Swashbuckle/Microsoft/AspNetCore/Builder/AbpSwaggerUIBuilderExtensions.cs @@ -2,6 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using Swashbuckle.AspNetCore.SwaggerUI; using Volo.Abp; +using Volo.Abp.Swashbuckle; namespace Microsoft.AspNetCore.Builder { diff --git a/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj similarity index 90% rename from framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj rename to framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj index 62c580f0b5..d221de8ca3 100644 --- a/framework/src/Volo.Abp.Swagger/Volo.Abp.Swagger.csproj +++ b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj @@ -4,8 +4,7 @@ netstandard2.0 - Volo.Abp.Swagger - Volo.Abp.Swagger + Volo.Abp.Swashbuckle $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false diff --git a/framework/src/Volo.Abp.Swagger/Volo/Abp/AbpSwaggerModule.cs b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleModule.cs similarity index 68% rename from framework/src/Volo.Abp.Swagger/Volo/Abp/AbpSwaggerModule.cs rename to framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleModule.cs index 5cd998eea4..949ac2ca2d 100644 --- a/framework/src/Volo.Abp.Swagger/Volo/Abp/AbpSwaggerModule.cs +++ b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleModule.cs @@ -1,16 +1,16 @@ using Volo.Abp.Modularity; using Volo.Abp.VirtualFileSystem; -namespace Volo.Abp +namespace Volo.Abp.Swashbuckle { [DependsOn(typeof(AbpVirtualFileSystemModule))] - public class AbpSwaggerModule : AbpModule + public class AbpSwashbuckleModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { Configure(options => { - options.FileSets.AddEmbedded(); + options.FileSets.AddEmbedded(); }); } } diff --git a/framework/src/Volo.Abp.Swagger/Volo/Abp/ISwaggerHtmlResolver.cs b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/ISwaggerHtmlResolver.cs similarity index 77% rename from framework/src/Volo.Abp.Swagger/Volo/Abp/ISwaggerHtmlResolver.cs rename to framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/ISwaggerHtmlResolver.cs index f22a03268c..8609acf418 100644 --- a/framework/src/Volo.Abp.Swagger/Volo/Abp/ISwaggerHtmlResolver.cs +++ b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/ISwaggerHtmlResolver.cs @@ -1,6 +1,6 @@ using System.IO; -namespace Volo.Abp +namespace Volo.Abp.Swashbuckle { public interface ISwaggerHtmlResolver { diff --git a/framework/src/Volo.Abp.Swagger/Volo/Abp/SwaggerHtmlResolver.cs b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/SwaggerHtmlResolver.cs similarity index 82% rename from framework/src/Volo.Abp.Swagger/Volo/Abp/SwaggerHtmlResolver.cs rename to framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/SwaggerHtmlResolver.cs index e447ddad16..7d80f5477f 100644 --- a/framework/src/Volo.Abp.Swagger/Volo/Abp/SwaggerHtmlResolver.cs +++ b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/SwaggerHtmlResolver.cs @@ -4,7 +4,7 @@ using System.Text; using Swashbuckle.AspNetCore.SwaggerUI; using Volo.Abp.DependencyInjection; -namespace Volo.Abp +namespace Volo.Abp.Swashbuckle { public class SwaggerHtmlResolver : ISwaggerHtmlResolver, ITransientDependency { @@ -15,7 +15,7 @@ namespace Volo.Abp var html = new StreamReader(stream) .ReadToEnd() - .Replace("SwaggerUIBundle(configObject)", "AbpSwaggerUIBundle(configObject)"); + .Replace("SwaggerUIBundle(configObject)", "abp.SwaggerUIBundle(configObject)"); return new MemoryStream(Encoding.UTF8.GetBytes(html)); } diff --git a/framework/src/Volo.Abp.Swashbuckle/wwwroot/swagger/ui/abp.swagger.js b/framework/src/Volo.Abp.Swashbuckle/wwwroot/swagger/ui/abp.swagger.js new file mode 100644 index 0000000000..b1b9614640 --- /dev/null +++ b/framework/src/Volo.Abp.Swashbuckle/wwwroot/swagger/ui/abp.swagger.js @@ -0,0 +1,17 @@ +var abp = abp || {}; + +(function () { + abp.SwaggerUIBundle = function (configObject) { + configObject.requestInterceptor = function (request) { + var token = abp.auth.getToken(); + request.headers.Authorization = token ? "Bearer " + token : null; + var antiForgeryToken = abp.security.antiForgery.getToken(); + if (antiForgeryToken) { + request.headers[abp.security.antiForgery.tokenHeaderName] = antiForgeryToken; + } + return request; + }; + + return SwaggerUIBundle(configObject); + } +})(); diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index bbf73de7bb..c3b439cee0 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -136,7 +136,7 @@ $projects = ( "framework/src/Volo.Abp.Validation", "framework/src/Volo.Abp.VirtualFileSystem", "framework/src/Volo.Abp.Kafka", - "framework/src/Volo.Abp.Swagger", + "framework/src/Volo.Abp.Swashbuckle", # modules/account "modules/account/src/Volo.Abp.Account.Application.Contracts", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index d2a7ce6f8f..88950bed22 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -30,7 +30,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs index f30cecd20b..9afb9ee4f3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs @@ -31,6 +31,7 @@ using Volo.Abp.Identity.Web; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; using Volo.Abp.PermissionManagement.Web; +using Volo.Abp.Swashbuckle; using Volo.Abp.TenantManagement.Web; using Volo.Abp.UI.Navigation.Urls; using Volo.Abp.UI; @@ -52,7 +53,7 @@ namespace MyCompanyName.MyProjectName.Web typeof(AbpIdentityWebModule), typeof(AbpTenantManagementWebModule), typeof(AbpAspNetCoreSerilogModule), - typeof(AbpSwaggerModule) + typeof(AbpSwashbuckleModule) )] public class MyProjectNameWebModule : AbpModule { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index 7ba850973e..dc57006bca 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -43,7 +43,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs index 1f508466ce..5b7a147345 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs @@ -28,6 +28,7 @@ using Volo.Abp.Identity.Web; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.PermissionManagement.Web; +using Volo.Abp.Swashbuckle; using Volo.Abp.TenantManagement.Web; using Volo.Abp.UI.Navigation.Urls; using Volo.Abp.UI; @@ -47,7 +48,7 @@ namespace MyCompanyName.MyProjectName.Web typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AbpTenantManagementWebModule), typeof(AbpAspNetCoreSerilogModule), - typeof(AbpSwaggerModule) + typeof(AbpSwashbuckleModule) )] public class MyProjectNameWebModule : AbpModule { diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj index 7d8e1359a8..48a08a0e79 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj @@ -20,7 +20,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs index 973eb1f4d7..9b61558fa8 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs @@ -40,6 +40,7 @@ using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.PermissionManagement.HttpApi; using Volo.Abp.PermissionManagement.Identity; using Volo.Abp.SettingManagement.EntityFrameworkCore; +using Volo.Abp.Swashbuckle; using Volo.Abp.TenantManagement; using Volo.Abp.TenantManagement.EntityFrameworkCore; using Volo.Abp.Threading; @@ -75,7 +76,7 @@ namespace MyCompanyName.MyProjectName typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(MyProjectNameApplicationContractsModule), typeof(AbpAspNetCoreSerilogModule), - typeof(AbpSwaggerModule) + typeof(AbpSwashbuckleModule) )] public class MyProjectNameIdentityServerModule : AbpModule { diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index 44702c78f6..ffd5be2342 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -20,7 +20,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs index 06e65a1192..f4c71e70d0 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs @@ -67,7 +67,7 @@ namespace MyCompanyName.MyProjectName typeof(AbpTenantManagementHttpApiClientModule), typeof(AbpPermissionManagementHttpApiClientModule), typeof(AbpAspNetCoreSerilogModule), - typeof(AbpSwaggerModule) + typeof(AbpSwashbuckleModule) )] public class MyProjectNameWebHostModule : AbpModule { diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj index 5e8df56439..a69f961797 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj @@ -18,7 +18,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs index 726b49d6d9..199fdb4fc1 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs @@ -31,6 +31,7 @@ using Volo.Abp.PermissionManagement; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.PermissionManagement.Identity; using Volo.Abp.SettingManagement.EntityFrameworkCore; +using Volo.Abp.Swashbuckle; using Volo.Abp.TenantManagement; using Volo.Abp.TenantManagement.EntityFrameworkCore; using Volo.Abp.TenantManagement.Web; @@ -63,7 +64,7 @@ namespace MyCompanyName.MyProjectName typeof(AbpTenantManagementEntityFrameworkCoreModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(AbpAspNetCoreSerilogModule), - typeof(AbpSwaggerModule) + typeof(AbpSwashbuckleModule) )] public class MyProjectNameWebUnifiedModule : AbpModule { From dc6904551beb9c2ad9cf2af48afefdcb1015eea4 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 23 Oct 2020 17:08:08 +0800 Subject: [PATCH 6/6] Update Volo.Abp.Swashbuckle.csproj --- framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj index d221de8ca3..967c709662 100644 --- a/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj +++ b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj @@ -4,6 +4,7 @@ netstandard2.0 + Volo.Abp.Swashbuckle Volo.Abp.Swashbuckle $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false