Add member auth to the Delivery API (#14730)
* Refactor OpenIddict for shared usage between APIs + implement member authentication and handling within the Delivery API * Make SwaggerRouteTemplatePipelineFilter UI config overridable * Enable token revocation + rename logout endpoint to signout * Add default implementation of SwaggerGenOptions configuration for enabling Delivery API member auth in Swagger * Correct notification handling when (un)protecting content * Fixing integration test framework * Cleanup test to not execute some composers twice * Update paths to match docs * Return Forbidden when a member is authorized but not allowed to access the requested resource * Cleanup * Rename RequestMemberService to RequestMemberAccessService * Rename badly named variable * Review comments * Hide the auth controller from Swagger * Remove semaphore * Add security requirements for content API operations in Swagger * Hide the back-office auth endpoints from Swagger * Fix merge * Update back-office API auth endpoint paths + add revoke and sign-out endpoints (as of now they do not exist, a separate task will fix that) * Swap endpoint order to maintain backwards compat with the current login screen for new back-office (will be swapped back again to ensure correct .well-known endpoints, see FIXME comment) * Make "items by IDs" endpoint support member auth * Add 401 and 403 to "items by IDs" endpoint responses --------- Co-authored-by: Bjarke Berg <mail@bergmania.dk> Co-authored-by: Elitsa <elm@umbraco.dk>
This commit is contained in:
@@ -11,6 +11,8 @@ using NUnit.Framework;
|
||||
using Serilog;
|
||||
using Umbraco.Cms.Core;
|
||||
using Umbraco.Cms.Core.Configuration.Models;
|
||||
using Umbraco.Cms.Core.Events;
|
||||
using Umbraco.Cms.Core.Notifications;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Infrastructure.Persistence;
|
||||
using Umbraco.Cms.Tests.Common.Testing;
|
||||
@@ -26,7 +28,7 @@ namespace Umbraco.Cms.Tests.Integration.Testing;
|
||||
public abstract class UmbracoIntegrationTestBase
|
||||
{
|
||||
private static readonly object s_dbLocker = new();
|
||||
private static ITestDatabase s_dbInstance;
|
||||
private static ITestDatabase? s_dbInstance;
|
||||
private static TestDbMeta s_fixtureDbMeta;
|
||||
private static int s_testCount = 1;
|
||||
private readonly List<Action> _fixtureTeardown = new();
|
||||
@@ -122,9 +124,16 @@ public abstract class UmbracoIntegrationTestBase
|
||||
var databaseFactory = serviceProvider.GetRequiredService<IUmbracoDatabaseFactory>();
|
||||
var loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>();
|
||||
var connectionStrings = serviceProvider.GetRequiredService<IOptionsMonitor<ConnectionStrings>>();
|
||||
var eventAggregator = serviceProvider.GetRequiredService<IEventAggregator>();
|
||||
|
||||
// This will create a db, install the schema and ensure the app is configured to run
|
||||
SetupTestDatabase(testDatabaseFactoryProvider, connectionStrings, databaseFactory, loggerFactory, state);
|
||||
|
||||
if (TestOptions.Database != UmbracoTestOptions.Database.None)
|
||||
{
|
||||
eventAggregator.Publish(new UnattendedInstallNotification());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void ConfigureTestDatabaseFactory(
|
||||
|
||||
Reference in New Issue
Block a user