diff --git a/Directory.Packages.props b/Directory.Packages.props index 9cb788f6b82..05f6ef3eb28 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -38,8 +38,8 @@ - - + + @@ -49,12 +49,12 @@ - - - - - - + + + + + + @@ -143,7 +143,7 @@ - + diff --git a/src/OrchardCore.Modules/OrchardCore.OpenId/Configuration/OpenIdServerConfiguration.cs b/src/OrchardCore.Modules/OrchardCore.OpenId/Configuration/OpenIdServerConfiguration.cs index b0169cb5d1e..26cf0db7473 100644 --- a/src/OrchardCore.Modules/OrchardCore.OpenId/Configuration/OpenIdServerConfiguration.cs +++ b/src/OrchardCore.Modules/OrchardCore.OpenId/Configuration/OpenIdServerConfiguration.cs @@ -178,6 +178,12 @@ public void Configure(OpenIddictServerOptions options) options.Scopes.Add(Scopes.Phone); options.Scopes.Add(Scopes.Profile); options.Scopes.Add(Scopes.Roles); + + // Note: caching is enabled for both authorization and end session requests to allow sending + // large POST authorization and end session requests, but can be programmatically disabled, as the + // authorization and end session views support flowing the entire payload and not just the request_uri. + options.EnableAuthorizationRequestCaching = true; + options.EnableEndSessionRequestCaching = true; } public void Configure(OpenIddictServerDataProtectionOptions options) @@ -202,12 +208,6 @@ public void Configure(string name, OpenIddictServerAspNetCoreOptions options) options.EnableTokenEndpointPassthrough = true; options.EnableUserInfoEndpointPassthrough = true; - // Note: caching is enabled for both authorization and end session requests to allow sending - // large POST authorization and end session requests, but can be programmatically disabled, as the - // authorization and end session views support flowing the entire payload and not just the request_id. - options.EnableAuthorizationRequestCaching = true; - options.EnableEndSessionRequestCaching = true; - // Note: error pass-through is enabled to allow the actions of the MVC authorization controller // to handle the errors returned by the interactive endpoints without relying on the generic // status code pages middleware to rewrite the response later in the request processing. diff --git a/src/OrchardCore.Modules/OrchardCore.OpenId/Controllers/AccessController.cs b/src/OrchardCore.Modules/OrchardCore.OpenId/Controllers/AccessController.cs index da3a1da323a..bae99c2345d 100644 --- a/src/OrchardCore.Modules/OrchardCore.OpenId/Controllers/AccessController.cs +++ b/src/OrchardCore.Modules/OrchardCore.OpenId/Controllers/AccessController.cs @@ -136,7 +136,6 @@ public async Task Authorize() return View(new AuthorizeViewModel { ApplicationName = await _applicationManager.GetLocalizedDisplayNameAsync(application), - RequestId = request.RequestId, Scope = request.Scope }); } @@ -327,10 +326,7 @@ public async Task Logout() } } - return View(new LogoutViewModel - { - RequestId = request.RequestId - }); + return View(); } [ActionName(nameof(Logout)), AllowAnonymous, DisableCors] diff --git a/src/OrchardCore.Modules/OrchardCore.OpenId/ViewModels/AuthorizeViewModel.cs b/src/OrchardCore.Modules/OrchardCore.OpenId/ViewModels/AuthorizeViewModel.cs index 94daf0fe2cd..c30926f9412 100644 --- a/src/OrchardCore.Modules/OrchardCore.OpenId/ViewModels/AuthorizeViewModel.cs +++ b/src/OrchardCore.Modules/OrchardCore.OpenId/ViewModels/AuthorizeViewModel.cs @@ -4,7 +4,5 @@ public class AuthorizeViewModel { public string ApplicationName { get; set; } - public string RequestId { get; set; } - public string Scope { get; set; } } diff --git a/src/OrchardCore.Modules/OrchardCore.OpenId/ViewModels/LogoutViewModel.cs b/src/OrchardCore.Modules/OrchardCore.OpenId/ViewModels/LogoutViewModel.cs deleted file mode 100644 index 6a30919e9b7..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.OpenId/ViewModels/LogoutViewModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace OrchardCore.OpenId.ViewModels; - -public class LogoutViewModel -{ - public string RequestId { get; set; } -} diff --git a/src/OrchardCore.Modules/OrchardCore.OpenId/Views/Access/Logout.cshtml b/src/OrchardCore.Modules/OrchardCore.OpenId/Views/Access/Logout.cshtml index d278c905b86..a50b9a00faa 100644 --- a/src/OrchardCore.Modules/OrchardCore.OpenId/Views/Access/Logout.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.OpenId/Views/Access/Logout.cshtml @@ -1,6 +1,4 @@ @using Microsoft.Extensions.Primitives -@using OrchardCore.OpenId.ViewModels -@model LogoutViewModel @{ ViewLayout = "Layout__Login"; diff --git a/src/OrchardCore/OrchardCore.OpenId.Core/YesSql/Stores/OpenIdAuthorizationStore.cs b/src/OrchardCore/OrchardCore.OpenId.Core/YesSql/Stores/OpenIdAuthorizationStore.cs index f7291815923..375189b9788 100644 --- a/src/OrchardCore/OrchardCore.OpenId.Core/YesSql/Stores/OpenIdAuthorizationStore.cs +++ b/src/OrchardCore/OrchardCore.OpenId.Core/YesSql/Stores/OpenIdAuthorizationStore.cs @@ -295,11 +295,10 @@ public virtual async ValueTask PruneAsync(DateTimeOffset threshold, Cancel var authorizations = (await _session.Query( authorization => authorization.CreationDate < threshold.UtcDateTime && - (authorization.Status != OpenIddictConstants.Statuses.Valid || - (authorization.Type == OpenIddictConstants.AuthorizationTypes.AdHoc && + (authorization.Status != Statuses.Valid || authorization.Type == AuthorizationTypes.AdHoc) && authorization.AuthorizationId.IsNotIn( token => token.AuthorizationId, - token => token.Id != 0))), + token => token.Id != 0), collection: OpenIdCollection).Take(100).ListAsync()).ToList(); if (authorizations.Count is 0)