Files
ARM64/MarketDataServer/Controllers/LoginController.cs

45 lines
1.4 KiB
C#
Executable File

using MarketData;
using MarketData.Utils;
using MarketDataServer.Authorization;
using Microsoft.AspNetCore.Mvc;
using LogLevel = MarketData.LogLevel;
namespace MarketDataServer.Controllers
{
[ApiController]
[Route("api/[controller]/[action]")]
public class AuthorizationController : ControllerBase
{
[HttpGet(Name = "GetToken")]
public String GetToken(String user, String password)
{
Profiler profiler = new Profiler();
try
{
MDTrace.WriteLine(LogLevel.DEBUG,$"Start");
if(null==user)return null;
user=Authorizations.Xor(user,5);
password=Authorizations.Xor(password,5);
MDTrace.WriteLine(LogLevel.DEBUG,$"Login requested for user '{user}'");
if(!Authorizations.GetInstance().IsValidUser(user, password))
{
MDTrace.WriteLine(LogLevel.DEBUG,$"User '{user}' is not authorized.");
return null;
}
String accessToken= Authorizations.GetInstance().GetAuthenticationToken();
MDTrace.WriteLine(LogLevel.DEBUG,$"Access token granted for user {user} : {accessToken}.");
return accessToken;
}
catch(Exception exception)
{
MDTrace.WriteLine(LogLevel.DEBUG,$"Exception:{exception.ToString()}");
return null;
}
finally
{
MDTrace.WriteLine(LogLevel.DEBUG,$"Done, total took {profiler.End()} (ms)");
}
}
}
}