summaryrefslogtreecommitdiff
path: root/Controllers/LoginController.cs
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2023-09-29 17:46:47 +1000
committerJake Mannens <jake@asger.xyz>2023-09-29 17:57:21 +1000
commite0cf80a5d0e2d6898b611892a331aa917b9370d9 (patch)
tree75809891d57e687a246233f52feead273a1eca7d /Controllers/LoginController.cs
parentc5ff0b57a12b605a5ae5ae8a92ce7a4e8eaec77a (diff)
Finalised security service
Diffstat (limited to 'Controllers/LoginController.cs')
-rw-r--r--Controllers/LoginController.cs16
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(