Skip to content

Commit

Permalink
Merge branch 'master' into beta
Browse files Browse the repository at this point in the history
  • Loading branch information
SonicGD committed Jan 18, 2023
2 parents fa5c76d + b76652d commit 07c724b
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 4 deletions.
1 change: 1 addition & 0 deletions src/Sitko.Core.App.Web/BaseStartup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ protected virtual void ConfigureAfterRoutingModulesHook(IApplicationBuilder app)
}

ConfigureAfterRoutingMiddleware(appBuilder);
application.AuthMiddlewareHook(applicationContext, appBuilder);
application.AfterRoutingHook(applicationContext, appBuilder);
ConfigureAfterRoutingModulesHook(appBuilder);

Expand Down
5 changes: 5 additions & 0 deletions src/Sitko.Core.App.Web/IWebApplicationModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,9 @@ public interface IWebApplicationModule : IApplicationModule
IApplicationBuilder appBuilder)
{
}

void ConfigureAuthMiddleware(IApplicationContext applicationContext,
IApplicationBuilder appBuilder)
{
}
}
9 changes: 9 additions & 0 deletions src/Sitko.Core.App.Web/WebApplication.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,15 @@ protected WebApplication(string[] args) : base(args)
}
}

public virtual void AuthMiddlewareHook(IApplicationContext applicationContext,
IApplicationBuilder appBuilder)
{
foreach (var webModule in GetWebModules(applicationContext))
{
webModule.ConfigureAuthMiddleware(applicationContext, appBuilder);
}
}

public virtual void EndpointsHook(IApplicationContext applicationContext,
IApplicationBuilder appBuilder, IEndpointRouteBuilder endpoints)
{
Expand Down
16 changes: 12 additions & 4 deletions src/Sitko.Core.Auth/AuthModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,24 @@ public interface IAuthModule : IApplicationModule
{
}

internal static class AuthMiddlewareState
{
public static bool IsConfigured { get; set; }
}

public abstract class AuthModule<TAuthOptions> : BaseApplicationModule<TAuthOptions>, IWebApplicationModule,
IAuthModule
where TAuthOptions : AuthOptions, new()
{
public virtual void ConfigureAfterUseRouting(IApplicationContext applicationContext,
public virtual void ConfigureAuthMiddleware(IApplicationContext applicationContext,
IApplicationBuilder appBuilder)
{
appBuilder.UseAuthentication()
.UseAuthorization();
appBuilder.UseMiddleware<AuthorizationMiddleware<TAuthOptions>>();
if (!AuthMiddlewareState.IsConfigured)
{
AuthMiddlewareState.IsConfigured = true;
appBuilder.UseAuthentication().UseAuthorization();
appBuilder.UseMiddleware<AuthorizationMiddleware<TAuthOptions>>();
}
}

public override void ConfigureServices(IApplicationContext applicationContext, IServiceCollection services,
Expand Down

0 comments on commit 07c724b

Please sign in to comment.