Browse Source

Do not limit the error controller to a specific HTTP method

pull/2173/head
Kévin Chalet 1 year ago
parent
commit
aa6733b2df
  1. 19
      sandbox/OpenIddict.Sandbox.AspNetCore.Client/Controllers/ErrorController.cs
  2. 19
      sandbox/OpenIddict.Sandbox.AspNetCore.Server/Controllers/ErrorController.cs
  3. 2
      shared/OpenIddict.Extensions/OpenIddictHelpers.cs
  4. 4
      src/OpenIddict.Abstractions/Primitives/OpenIddictExtensions.cs

19
sandbox/OpenIddict.Sandbox.AspNetCore.Client/Controllers/ErrorController.cs

@ -12,21 +12,20 @@ namespace OpenIddict.Sandbox.AspNetCore.Client;
public class ErrorController : Controller
{
[HttpGet, HttpPost, Route("~/error")]
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true), Route("~/error")]
public IActionResult Error()
{
// If the error was not caused by an invalid
// OIDC request, display a generic error page.
// If the error originated from the OpenIddict client, render the error details.
var response = HttpContext.GetOpenIddictClientResponse();
if (response is null)
if (response is not null)
{
return View(new ErrorViewModel());
return View(new ErrorViewModel
{
Error = response.Error,
ErrorDescription = response.ErrorDescription
});
}
return View(new ErrorViewModel
{
Error = response.Error,
ErrorDescription = response.ErrorDescription
});
return View(new ErrorViewModel());
}
}

19
sandbox/OpenIddict.Sandbox.AspNetCore.Server/Controllers/ErrorController.cs

@ -12,21 +12,20 @@ namespace OpenIddict.Sandbox.AspNetCore.Server;
public class ErrorController : Controller
{
[HttpGet, HttpPost, Route("~/error")]
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true), Route("~/error")]
public IActionResult Error()
{
// If the error was not caused by an invalid
// OIDC request, display a generic error page.
// If the error originated from the OpenIddict server, render the error details.
var response = HttpContext.GetOpenIddictServerResponse();
if (response is null)
if (response is not null)
{
return View(new ErrorViewModel());
return View(new ErrorViewModel
{
Error = response.Error,
ErrorDescription = response.ErrorDescription
});
}
return View(new ErrorViewModel
{
Error = response.Error,
ErrorDescription = response.ErrorDescription
});
return View(new ErrorViewModel());
}
}

2
shared/OpenIddict.Extensions/OpenIddictHelpers.cs

@ -1387,7 +1387,7 @@ internal static class OpenIddictHelpers
{
foreach (var entry in _expandingAccumulator)
{
_accumulator[entry.Key] = new StringValues(entry.Value.ToArray());
_accumulator[entry.Key] = new StringValues([.. entry.Value]);
}
}

4
src/OpenIddict.Abstractions/Primitives/OpenIddictExtensions.cs

@ -660,7 +660,7 @@ public static class OpenIddictExtensions
}
}
builder.Add(group.Key, destinations.ToArray());
builder.Add(group.Key, [.. destinations]);
}
}
@ -697,7 +697,7 @@ public static class OpenIddictExtensions
}
}
builder.Add(group.Key, destinations.ToArray());
builder.Add(group.Key, [.. destinations]);
}
}

Loading…
Cancel
Save