namespace VECV_WebApi.Controllers.Token
{
using DocumentFormat.OpenXml.Bibliography;
using DocumentFormat.OpenXml.EMMA;
using DocumentFormat.OpenXml.Office2010.ExcelAc;
using DocumentFormat.OpenXml.Wordprocessing;
using ExcelHelper;
#region Namespaces
using LoggingHelper;
using Microsoft.Ajax.Utilities;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Configuration;
using System.Net.Http;
using System.Text;
using System.Web;
using System.Web.Helpers;
using System.Web.Http;
using System.Web.Http.Results;
using System.Web.Mvc;
using VECV_WebApi.Common;
using VECV_WebApi.CommonAuthorization;
using VECV_WebApi.Models.BoatAPIModel;
using VECV_WebApi.Models.BoatAPIRepository;
using VECV_WebApi.Models.Notification;
using VECV_WebApi.Models.Ticket;
#endregion
///
/// This controller contain ticket related api
///
//[JwtAuthentication]
//[System.Web.Http.Authorize]
[RoutePrefix("api/TokenJWT")]
public class TokenAPIController : ApiController
{
#region Global Variable
///
/// making object of LoggingUtility class available to this class
///
LoggingUtility objLog = new LoggingUtility();
///
/// making the data-log file path available to this class
///
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
///
/// making data log file path available to this class
///
string logtf = (ConfigurationManager.AppSettings["Log"]);
///
/// making error log file path available to this class
///
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
string _appName = (ConfigurationManager.AppSettings["ApplicationName"]);
///
/// making the Database connection string available to this class
///
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
[System.Web.Http.HttpPost]
[System.Web.Http.Route("token")]
public IHttpActionResult GetToken()
{
var auth = Request.Headers.Authorization;
if (auth == null || auth.Scheme != "Basic")
return ResponseMessage(Request.CreateResponse(HttpStatusCode.Unauthorized, "Missing Basic Auth"));
var encodedCredentials = auth.Parameter;
var credentialBytes = Convert.FromBase64String(encodedCredentials);
var credentials = Encoding.UTF8.GetString(credentialBytes).Split(':');
if (credentials.Length != 2)
return BadRequest("Invalid Basic Auth format");
var username = credentials[0];
var password = credentials[1];
// Replace this check with actual DB/user validation
if (username != ConfigurationManager.AppSettings["JWTAuthId"].ToString() || password != ConfigurationManager.AppSettings["JWTAuthPwd"].ToString())
return Unauthorized();
var token = JwtManager.GenerateToken(username);
return Ok(new { token });
}
public bool CheckUser(string username, string password)
{
// should check in the database
if (username == ConfigurationManager.AppSettings["JWTAuthId"].ToString() && password == ConfigurationManager.AppSettings["JWTAuthPwd"].ToString())
{
return true;
}
else
{
return false;
}
}
#endregion APIs
}
}