Code changes

Did not run code. Had a spur of the moment to try something out.
This commit is contained in:
Kun Deng
2022-08-25 20:56:12 -04:00
parent 467a9d7e0f
commit 2cc13ac9bb
7 changed files with 171 additions and 16 deletions
+26 -7
View File
@@ -1,13 +1,19 @@
// using JwtAuthentication.AsymmetricEncryption.Certificates;
using System;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Linq;
using Microsoft.IdentityModel.Tokens;
using Microsoft.Extensions.Configuration;
using Icarus;
using Icarus.Certs;
using Icarus.Database.Contexts;
using Icarus.Repositories;
using Icarus.Models.Shared;
// using JwtAuthentication.Shared;
// using JwtAuthentication.Shared.Models;
using Microsoft.IdentityModel.Tokens;
using System;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
namespace Icarus.Services
{
@@ -15,7 +21,8 @@ namespace Icarus.Services
{
private Microsoft.Extensions.Configuration.IConfiguration _configuration;
private readonly UserRepository userRepository;
private readonly SigningAudienceCertificate signingAudienceCertificate;
private readonly UserContext _userContext;
private readonly Icarus.Certs.SigningAudienceCertificate signingAudienceCertificate;
private string _publickKeyPath = string.Empty;
/**
@@ -26,17 +33,29 @@ namespace Icarus.Services
}
*/
/**
public TokenService(UserRepository userRepository, Microsoft.Extensions.Configuration.IConfiguration configuration)
{
this._configuration = configuration;
this.userRepository = userRepository;
signingAudienceCertificate = new SigningAudienceCertificate();
signingAudienceCertificate = new Icarus.Certs.SigningAudienceCertificate();
_publickKeyPath = configuration["RSAKeys:PublicKeyPath"];
}
*/
public TokenService(Microsoft.Extensions.Configuration.IConfiguration configuration)
{
this._configuration = configuration;
// this.userRepository = userRepository;
this._userContext = new UserContext(configuration.GetConnectionString("DefaultConnection"));
signingAudienceCertificate = new Icarus.Certs.SigningAudienceCertificate();
_publickKeyPath = configuration["RSAKeys:PublicKeyPath"];
}
public string GetToken(string username)
{
var user = userRepository.GetUser(username);
// var user = userRepository.GetUser(username);
var user = _userContext.Users.FirstOrDefault(usr => usr.Username.Equals(username));
SecurityTokenDescriptor tokenDescriptor = GetTokenDescriptor(user);
var tokenHandler = new JwtSecurityTokenHandler();
+18 -3
View File
@@ -1,9 +1,14 @@
// using JwtAuthentication.Shared.Exceptions;
// using JwtAuthentication.Shared.Models;
using System.Linq;
using Microsoft.Extensions.Configuration;
using Icarus.Exceptions;
using Icarus.Models.Shared;
using Icarus.Services;
using Icarus.Repositories;
using Icarus.Database.Contexts;
namespace Icarus.Services
{
@@ -11,6 +16,7 @@ namespace Icarus.Services
{
private Microsoft.Extensions.Configuration.IConfiguration _configuration;
private readonly UserRepository userRepository;
private readonly UserContext _userContext;
public UserService(UserRepository userRepository, Microsoft.Extensions.Configuration.IConfiguration configuration)
{
@@ -18,9 +24,17 @@ namespace Icarus.Services
this.userRepository = userRepository;
}
// public UserService(UserContext userContext, Microsoft.Extensions.Configuration.IConfiguration configuration)
public UserService(Microsoft.Extensions.Configuration.IConfiguration configuration)
{
this._configuration = configuration;
this._userContext = new UserContext(configuration.GetConnectionString("DefaultConnection"));
}
public void ValidateCredentials(UserCredentials userCredentials)
{
Icarus.Models.User user = userRepository.GetUser(userCredentials.Username);
// Icarus.Models.User user = userRepository.GetUser(userCredentials.Username);
var user = _userContext.Users.FirstOrDefault(usr => usr.Username.Equals(userCredentials.Username));
bool isValid = user != null && AreValidCredentials(userCredentials, user);
if (!isValid)
@@ -31,8 +45,9 @@ namespace Icarus.Services
private static bool AreValidCredentials(UserCredentials userCredentials, Icarus.Models.User user)
{
return user.Username == userCredentials.Username &&
user.Password == userCredentials.Password;
// TODO: Has the user provided password and compair it to the hash retrieved from
// the DB
return true;
}
}
}