Add project files.

This commit is contained in:
2025-08-18 17:11:43 +03:30
parent 807dc263be
commit e5eb10d604
3943 changed files with 223719 additions and 0 deletions
@@ -0,0 +1,36 @@
using Elsa.Extensions;
using JetBrains.Annotations;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
namespace Elsa.Requirements;
/// <summary>
/// Represents an authorization requirement for localhost requests, meaning that if a request comes from the localhost, the requirement is met.
/// </summary>
public class LocalHostRequirement : IAuthorizationRequirement
{
}
/// <inheritdoc />
[PublicAPI]
public class LocalHostRequirementHandler : AuthorizationHandler<LocalHostRequirement>
{
private readonly IHttpContextAccessor _httpContextAccessor;
/// <inheritdoc />
public LocalHostRequirementHandler(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
/// <inheritdoc />
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, LocalHostRequirement requirement)
{
if (_httpContextAccessor.HttpContext?.Request.IsLocal() == false)
context.Fail(new AuthorizationFailureReason(this, "Only requests from localhost are allowed"));
context.Succeed(requirement);
return Task.CompletedTask;
}
}