aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Utilities/BasicAuthenticationAttribute.cs
diff options
context:
space:
mode:
authorivar <i@oiee.no>2023-11-11 22:10:42 +0100
committerivar <i@oiee.no>2023-11-11 22:10:42 +0100
commit854dedead3a3ed987997a0132f527db73b65b0ac (patch)
tree982dddd8b1dc4c819147912222ec2b38dd3b671e /code/api/src/Utilities/BasicAuthenticationAttribute.cs
parent7e874b9aecabe22a731d582505cadd87b699d159 (diff)
downloadgreatoffice-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.cs30
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
}
}