From 766c2258842e84c864717ac7e68be4d337349261 Mon Sep 17 00:00:00 2001 From: D4VID Date: Fri, 1 Mar 2024 13:52:32 +0100 Subject: [PATCH] Authorized endpoints --- OAuthServer/Controllers/ExternalController.cs | 32 +++++++++++++++++++ OAuthServer/Controllers/UserController.cs | 19 +++++++++++ 2 files changed, 51 insertions(+) create mode 100644 OAuthServer/Controllers/ExternalController.cs create mode 100644 OAuthServer/Controllers/UserController.cs diff --git a/OAuthServer/Controllers/ExternalController.cs b/OAuthServer/Controllers/ExternalController.cs new file mode 100644 index 0000000..af583f0 --- /dev/null +++ b/OAuthServer/Controllers/ExternalController.cs @@ -0,0 +1,32 @@ +using System.Security.Claims; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace OAuthServer.Controllers; + +[ApiController] +[Route("")] +public class ExternalController : ControllerBase +{ + private readonly ILogger _logger; + + public ExternalController(ILogger logger) + { + _logger = logger; + } + + [HttpPost] + [Authorize(Policy = "External")] + [Route("points")] + public ActionResult PostPoints(int points) + { + var id = HttpContext.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier); + if (id == null) + { + return BadRequest(); + } + + _logger.LogInformation("User {} got {} points", id.Value, points); + return Ok(); + } +} \ No newline at end of file diff --git a/OAuthServer/Controllers/UserController.cs b/OAuthServer/Controllers/UserController.cs new file mode 100644 index 0000000..01ce915 --- /dev/null +++ b/OAuthServer/Controllers/UserController.cs @@ -0,0 +1,19 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace OAuthServer.Controllers; + +[ApiController] +[Route("")] +public class UserController : ControllerBase +{ + + [HttpGet] + [Authorize(Policy = "User")] + [Route("user")] + public ActionResult GetUser() + { + + return Ok("Authorized as User"); + } +} \ No newline at end of file