< Summary

Information
Class: ArturRios.Util.WebApi.Security.Attributes.AuthorizeAttribute
Assembly: ArturRios.Util.WebApi
File(s): /home/runner/work/dotnet-webapi-util/dotnet-webapi-util/src/Security/Attributes/AuthorizeAttribute.cs
Line coverage
100%
Covered lines: 4
Uncovered lines: 0
Coverable lines: 4
Total lines: 25
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage
100%
Covered methods: 1
Fully covered methods: 1
Total methods: 1
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
OnAuthorization(...)100%44100%

File(s)

/home/runner/work/dotnet-webapi-util/dotnet-webapi-util/src/Security/Attributes/AuthorizeAttribute.cs

#LineLine coverage
 1using ArturRios.Util.WebApi.Security.Extensions;
 2using ArturRios.Util.WebApi.Security.Filters;
 3using ArturRios.Util.WebApi.Security.Interfaces;
 4using Microsoft.AspNetCore.Mvc.Filters;
 5
 6namespace ArturRios.Util.WebApi.Security.Attributes;
 7
 8/// <summary>Rejects requests with a 401 response unless an <see cref="IAuthenticatedUser"/> was attached to the
 9/// context (typically by <see cref="Security.Middleware.AuthenticationMiddleware"/>), unless the action is marked with 
 10[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
 11public class AuthorizeAttribute : Attribute, IAuthorizationFilter
 12{
 13    /// <summary>Checks for an authenticated user on the context and short-circuits the pipeline with a 401 result
 14    /// carrying a failed <c>ProcessOutput</c> envelope if none is present.</summary>
 15    /// <param name="context">The authorization filter context for the current request.</param>
 16    public void OnAuthorization(AuthorizationFilterContext context)
 17    {
 418        if (context.ActionDescriptor.AllowsAnonymous() || context.HttpContext.GetUser() is not null)
 19        {
 220            return;
 21        }
 22
 223        context.Result = AuthorizationResults.Unauthorized();
 224    }
 25}