aboutsummaryrefslogtreecommitdiff
path: root/VPNAuth.Server
diff options
context:
space:
mode:
Diffstat (limited to 'VPNAuth.Server')
-rw-r--r--VPNAuth.Server/Config.cs7
-rw-r--r--VPNAuth.Server/Pages/Auth.cshtml.cs7
2 files changed, 9 insertions, 5 deletions
diff --git a/VPNAuth.Server/Config.cs b/VPNAuth.Server/Config.cs
index 32e72fa..cb57f11 100644
--- a/VPNAuth.Server/Config.cs
+++ b/VPNAuth.Server/Config.cs
@@ -13,6 +13,7 @@ public class ConfigApp
public string? ClientId { get; set; }
public string? RedirectUri { get; set; }
public string? Secret { get; set; }
+ public List<string>? AllowedUsers { get; set; }
}
public class Config
@@ -20,7 +21,7 @@ public class Config
public List<ConfigUser>? Users { get; set; }
public List<ConfigApp>? Apps { get; set; }
- public ConfigApp? FindApp(string clientId)
+ public ConfigApp? FindApp(string? clientId)
=> Apps?.Find(app => app.ClientId == clientId);
private static string _filePath = "./config.json";
@@ -29,10 +30,10 @@ public class Config
{
if (File.Exists(_filePath)) return;
- File.Create(_filePath);
File.WriteAllText(_filePath, JsonSerializer.Serialize(new Config
{
- Users = []
+ Users = [],
+ Apps = []
}));
}
diff --git a/VPNAuth.Server/Pages/Auth.cshtml.cs b/VPNAuth.Server/Pages/Auth.cshtml.cs
index 1f75492..ea648cb 100644
--- a/VPNAuth.Server/Pages/Auth.cshtml.cs
+++ b/VPNAuth.Server/Pages/Auth.cshtml.cs
@@ -7,6 +7,7 @@ namespace VPNAuth.Server.Pages;
public class Auth : PageModel
{
public Config Config;
+ public ConfigApp? ConfApp;
public ConfigUser? User;
public bool ValidRequest;
public EntityEntry<AuthRequest>? RequestEntry;
@@ -23,12 +24,14 @@ public class Auth : PageModel
public void OnGet()
{
Config = Config.Read();
+ ConfApp = Config.FindApp(Request.Query["client_id"]);
User = HttpContext.GetUser();
ValidRequest = RequiredQueryParams.All(key => Request.Query.ContainsKey(key))
- && Config.FindApp(Request.Query["client_id"]!) != null
+ && ConfApp != null
&& Request.Query["code_challenge_method"] == "S256"
- && User != null;
+ && User != null
+ && (ConfApp.AllowedUsers == null || ConfApp.AllowedUsers!.Contains(User.Username!));
RequestEntry = null;