summary refs log tree commit diff
path: root/ModAS.Server/Services/AuthenticationService.cs
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2023-12-31 16:38:20 +0100
committerRory& <root@rory.gay>2023-12-31 16:38:20 +0100
commit05289f61d7bd0650ef511cc92a8a657c493dce30 (patch)
treeed38ef598f9e37eaaf294b8864f361553869ee3c /ModAS.Server/Services/AuthenticationService.cs
parentAdd auth, start of commit script (diff)
downloadModAS-master.tar.xz
Clean up swagger, clean up auth code HEAD github/master master
Diffstat (limited to 'ModAS.Server/Services/AuthenticationService.cs')
-rw-r--r--ModAS.Server/Services/AuthenticationService.cs76
1 files changed, 0 insertions, 76 deletions
diff --git a/ModAS.Server/Services/AuthenticationService.cs b/ModAS.Server/Services/AuthenticationService.cs
deleted file mode 100644
index 8efc08c..0000000
--- a/ModAS.Server/Services/AuthenticationService.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using System.Net.Http.Headers;
-using LibMatrix;
-using LibMatrix.Services;
-using MxApiExtensions.Extensions;
-using MxApiExtensions.Services;
-
-namespace ModAS.Server.Services;
-
-public class AuthenticationService(
-    ILogger<AuthenticationService> logger,
-    ModASConfiguration config,
-    IHttpContextAccessor request,
-    HomeserverProviderService homeserverProviderService) {
-    private readonly HttpRequest _request = request.HttpContext!.Request;
-
-    private static Dictionary<string, string> _tokenMap = new();
-
-    internal string? GetToken(bool fail = true) {
-        //_request.GetTypedHeaders().Get<AuthenticationHeaderValue>("Authorization")?.Parameter != asr.HomeserverToken
-
-        string? token = null;
-        if (_request.GetTypedHeaders().TryGet<AuthenticationHeaderValue>("Authorization", out var authHeader) && !string.IsNullOrWhiteSpace(authHeader?.Parameter)) {
-            token = authHeader.Parameter;
-        }
-        else if (_request.Query.ContainsKey("access_token")) {
-            token = _request.Query["access_token"];
-        }
-
-        if (string.IsNullOrWhiteSpace(token) && fail) {
-            throw new MatrixException() {
-                ErrorCode = "M_MISSING_TOKEN",
-                Error = "Missing access token"
-            };
-        }
-
-        return token;
-    }
-
-    public async Task<string> GetMxidFromToken(string? token = null, bool fail = true) {
-        token ??= GetToken(fail);
-        if (string.IsNullOrWhiteSpace(token)) {
-            if (fail) {
-                throw new MatrixException() {
-                    ErrorCode = "M_MISSING_TOKEN",
-                    Error = "Missing access token"
-                };
-            }
-
-            return "@anonymous:*";
-        }
-
-        if (_tokenMap is not { Count: > 0 } && File.Exists("token_map")) {
-            _tokenMap = (await File.ReadAllLinesAsync("token_map"))
-                .Select(l => l.Split('\t'))
-                .ToDictionary(l => l[0], l => l[1]);
-        }
-
-        if (_tokenMap.TryGetValue(token, out var mxid)) return mxid;
-
-        logger.LogInformation("Looking up mxid for token {}", token);
-        var hs = await homeserverProviderService.GetAuthenticatedWithToken(config.ServerName, token, config.HomeserverUrl);
-        try {
-            var res = hs.WhoAmI.UserId;
-            logger.LogInformation("Got mxid {} for token {}", res, token);
-
-            return res;
-        }
-        catch (MatrixException e) {
-            if (e.ErrorCode == "M_UNKNOWN_TOKEN") {
-                return null;
-            }
-
-            throw;
-        }
-    }
-}
\ No newline at end of file