aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/Utilities/BasicAuthenticationAttribute.cs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/Utilities/BasicAuthenticationAttribute.cs')
-rw-r--r--server/src/Utilities/BasicAuthenticationAttribute.cs39
1 files changed, 0 insertions, 39 deletions
diff --git a/server/src/Utilities/BasicAuthenticationAttribute.cs b/server/src/Utilities/BasicAuthenticationAttribute.cs
deleted file mode 100644
index 0bfd007..0000000
--- a/server/src/Utilities/BasicAuthenticationAttribute.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using System.Net.Http.Headers;
-using Microsoft.AspNetCore.Mvc.Filters;
-
-namespace IOL.GreatOffice.Api.Utilities;
-
-public class BasicAuthenticationAttribute : TypeFilterAttribute
-{
- public BasicAuthenticationAttribute(string claimPermission) : base(typeof(BasicAuthenticationFilter)) {
- Arguments = new object[] {
- new Claim(claimPermission, "True")
- };
- }
-}
-
-public class BasicAuthenticationFilter : IAuthorizationFilter
-{
- private readonly 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) {
- 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) {
- context.Result = new ForbidResult(AppConstants.BASIC_AUTH_SCHEME);
- }
- } catch {
- // ignore
- }
- }
-}