This commit is contained in:
2024-02-23 06:49:44 -05:00
commit 2e5b428be4
81 changed files with 71554 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MarketDataServer.Authorization
{
public class Authorizations
{
private Dictionary<String, String> authorizationDictionary = null;
private List<String> validUsers = null;
private static Authorizations authorizations = null;
private bool isEnabled=true;
private Authorizations()
{
validUsers = new List<String>();
authorizationDictionary=new Dictionary<String,String>();
validUsers.Add("sean");
}
public static Authorizations GetInstance()
{
lock (typeof(Authorizations))
{
if (null == authorizations) authorizations = new Authorizations();
}
return authorizations;
}
public bool IsEnabled
{
get{return isEnabled;}
set{isEnabled=value;}
}
public bool IsAuthorized(String token)
{
lock (this)
{
if(!IsEnabled)return true;
return authorizationDictionary.ContainsKey(token);
}
}
public String GetAuthenticationToken()
{
lock (this)
{
String token = Guid.NewGuid().ToString();
authorizationDictionary.Add(token, token);
return token;
}
}
public bool IsValidUser(String user)
{
lock (this)
{
return validUsers.Any(x => x.Equals(user));
}
}
public static String Xor(String input, int magic)
{
StringBuilder sb = new StringBuilder();
foreach (char ch in input) sb.Append((char)(ch ^ (char)magic));
return sb.ToString();
}
}
}