diff options
| author | Jake Mannens <jake@asger.xyz> | 2023-09-29 17:46:47 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2023-09-29 17:57:21 +1000 |
| commit | e0cf80a5d0e2d6898b611892a331aa917b9370d9 (patch) | |
| tree | 75809891d57e687a246233f52feead273a1eca7d /Controllers | |
| parent | c5ff0b57a12b605a5ae5ae8a92ce7a4e8eaec77a (diff) | |
Finalised security service
Diffstat (limited to 'Controllers')
| -rw-r--r-- | Controllers/LoginController.cs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/Controllers/LoginController.cs b/Controllers/LoginController.cs index bb31fe2..364bc5e 100644 --- a/Controllers/LoginController.cs +++ b/Controllers/LoginController.cs @@ -11,8 +11,15 @@ namespace HyperBooru.Controllers; [Route("/")] public class LoginController : Controller { private IHttpContextAccessor httpContextAccessor; - public LoginController(IHttpContextAccessor httpContextAccessor) => + private IPrincipalProvider principalProvider; + + public LoginController( + IHttpContextAccessor httpContextAccessor, + IPrincipalProvider principalProvider) { + this.httpContextAccessor = httpContextAccessor; + this.principalProvider = principalProvider; + } [HttpPost("Login")] public async Task<IActionResult> Login( @@ -20,17 +27,16 @@ public class LoginController : Controller { [FromForm] string password, HBContext db) { - var user = db.Users.FirstOrDefault(u => u.Name == username); + var user = principalProvider.GetUser(username); if(user is null) return StatusCode(403); - var hash = UserService.HashPassword(password); - if(hash != user.PasswordHash) + if(!principalProvider.ValidatePassword(user, password)) return StatusCode(403); var claims = new Claim[] { new Claim(ClaimTypes.Name, user.Name), - new Claim("ObjectId", user.ObjectId.ToString()) + new Claim("SID", user.Sid.ToString()) }; var claimsIdentity = new ClaimsIdentity( |
