diff options
| author | ivar <i@oiee.no> | 2023-11-11 22:10:42 +0100 |
|---|---|---|
| committer | ivar <i@oiee.no> | 2023-11-11 22:10:42 +0100 |
| commit | 854dedead3a3ed987997a0132f527db73b65b0ac (patch) | |
| tree | 982dddd8b1dc4c819147912222ec2b38dd3b671e /code/api/src/Utilities/BasicAuthenticationAttribute.cs | |
| parent | 7e874b9aecabe22a731d582505cadd87b699d159 (diff) | |
| download | greatoffice-854dedead3a3ed987997a0132f527db73b65b0ac.tar.xz greatoffice-854dedead3a3ed987997a0132f527db73b65b0ac.zip | |
Div more changes
Diffstat (limited to 'code/api/src/Utilities/BasicAuthenticationAttribute.cs')
| -rw-r--r-- | code/api/src/Utilities/BasicAuthenticationAttribute.cs | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/code/api/src/Utilities/BasicAuthenticationAttribute.cs b/code/api/src/Utilities/BasicAuthenticationAttribute.cs index 0bfd007..9e57595 100644 --- a/code/api/src/Utilities/BasicAuthenticationAttribute.cs +++ b/code/api/src/Utilities/BasicAuthenticationAttribute.cs @@ -5,10 +5,11 @@ namespace IOL.GreatOffice.Api.Utilities; public class BasicAuthenticationAttribute : TypeFilterAttribute { - public BasicAuthenticationAttribute(string claimPermission) : base(typeof(BasicAuthenticationFilter)) { - Arguments = new object[] { + public BasicAuthenticationAttribute(string claimPermission) : base(typeof(BasicAuthenticationFilter)) + { + Arguments = [ new Claim(claimPermission, "True") - }; + ]; } } @@ -16,23 +17,30 @@ public class BasicAuthenticationFilter : IAuthorizationFilter { private readonly Claim _claim; - public BasicAuthenticationFilter(Claim claim) { + public BasicAuthenticationFilter(Claim claim) + { _claim = claim; } - public void OnAuthorization(AuthorizationFilterContext context) { - if (!context.HttpContext.Request.Headers.ContainsKey("Authorization")) return; - try { - var authHeader = AuthenticationHeaderValue.Parse(context.HttpContext.Request.Headers["Authorization"]); - if (authHeader.Parameter is null) { + public void OnAuthorization(AuthorizationFilterContext context) + { + if (!context.HttpContext.Request.Headers.TryGetValue("Authorization", out Microsoft.Extensions.Primitives.StringValues authzHeaderValue)) return; + try + { + var authHeader = AuthenticationHeaderValue.Parse(authzHeaderValue); + if (authHeader.Parameter is null) + { context.Result = new ForbidResult(AppConstants.BASIC_AUTH_SCHEME); } var hasClaim = context.HttpContext.User.Claims.Any(c => c.Type == _claim.Type && c.Value == _claim.Value); - if (!hasClaim) { + if (!hasClaim) + { context.Result = new ForbidResult(AppConstants.BASIC_AUTH_SCHEME); } - } catch { + } + catch + { // ignore } } |
