summary refs log tree commit diff
path: root/extra/admin-api/Spacebar.AdminAPI/Services
diff options
context:
space:
mode:
Diffstat (limited to 'extra/admin-api/Spacebar.AdminAPI/Services')
-rw-r--r--extra/admin-api/Spacebar.AdminAPI/Services/AuthenticationService.cs42
-rw-r--r--extra/admin-api/Spacebar.AdminAPI/Services/Configuration.cs11
2 files changed, 0 insertions, 53 deletions
diff --git a/extra/admin-api/Spacebar.AdminAPI/Services/AuthenticationService.cs b/extra/admin-api/Spacebar.AdminAPI/Services/AuthenticationService.cs
deleted file mode 100644

index d402c5b96..000000000 --- a/extra/admin-api/Spacebar.AdminAPI/Services/AuthenticationService.cs +++ /dev/null
@@ -1,42 +0,0 @@ -using System.IdentityModel.Tokens.Jwt; -using System.Security.Cryptography; -using Microsoft.IdentityModel.Tokens; -using Spacebar.Db.Contexts; -using Spacebar.Db.Models; - -namespace Spacebar.AdminAPI.Services; - -public class AuthenticationService(SpacebarDbContext db, Configuration config) { - private static Dictionary<string, User> _userCache = new(); - private static Dictionary<string, DateTime> _userCacheExpiry = new(); - - public async Task<User> GetCurrentUser(HttpRequest request) { - if (!request.Headers.ContainsKey("Authorization")) { - Console.WriteLine(string.Join(", ", request.Headers.Keys)); - throw new UnauthorizedAccessException(); - } - - var token = request.Headers["Authorization"].ToString().Split(' ').Last(); - - var handler = new JwtSecurityTokenHandler(); - var secretFile = File.ReadAllText("../../../jwt.key.pub"); - var key = ECDsa.Create(ECCurve.NamedCurves.nistP256); - key.ImportFromPem(secretFile); - - var res = await handler.ValidateTokenAsync(token, new TokenValidationParameters { - IssuerSigningKey = new ECDsaSecurityKey(key), - ValidAlgorithms = ["ES512"], - LogValidationExceptions = true, - // These are required to be false for the token to be valid as they aren't provided by the token - ValidateIssuer = false, - ValidateLifetime = false, - ValidateAudience = false, - }); - - if (!res.IsValid && !config.DisableAuthentication) { - throw new UnauthorizedAccessException(); - } - - return await db.Users.FindAsync(config.OverrideUid ?? res.ClaimsIdentity.Claims.First(x => x.Type == "id").Value) ?? throw new InvalidOperationException(); - } -} \ No newline at end of file diff --git a/extra/admin-api/Spacebar.AdminAPI/Services/Configuration.cs b/extra/admin-api/Spacebar.AdminAPI/Services/Configuration.cs deleted file mode 100644
index a58ef5c07..000000000 --- a/extra/admin-api/Spacebar.AdminAPI/Services/Configuration.cs +++ /dev/null
@@ -1,11 +0,0 @@ -namespace Spacebar.AdminAPI.Services; - -public class Configuration { - public Configuration(IConfiguration configuration) { - configuration.GetRequiredSection("SpacebarAdminApi").Bind(this); - } - - public string? OverrideUid { get; set; } - public bool DisableAuthentication { get; set; } = false; - public bool Enforce2FA { get; set; } = true; -} \ No newline at end of file