using System.Linq; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using xCommons.Attributes; using xCommons.Configurations; using xCommons.Providers; using xIdentityHelper; using xIdentityService.Controllers; using xIdentityService.Interfaces; namespace xAiApi.Controllers { /// /// Test all Authentication Policies ... /// [RequireXPowered(false)] public class TestIdentity : XIBaseController { public TestIdentity( ILogger logger, XAppConfiguration appConfiguration, IXIdentityProvider identityProvider, XValidationProvider validationProvider ) : base( logger, appConfiguration, identityProvider, validationProvider ) { } // #region Test Actions ... /// /// API Read Scope /// /// string message [HttpGet("PassReadAccess")] [Authorize(Policy = XPolicies.ReadAccess)] public ActionResult PassReadAccess() { return Ok("Read Access Passed ..."); } /// /// API Write Scope /// /// string message [HttpGet("PassWriteAccess")] [Authorize(Policy = XPolicies.WriteAccess)] public ActionResult PassWriteAccess() { return Ok("Write Access Passed ..."); } /// /// API Admin Scope /// /// string message [HttpGet("PassAdminAccess")] [Authorize(Policy = XPolicies.AdminAccess)] public ActionResult PassAdminAccess() { return Ok("Admin Access Passed ..."); } /// /// API Manage Scop /// /// string message [HttpGet("PassManageAccess")] [Authorize(Policy = XPolicies.ManageAccess)] public ActionResult PassManageAccess() { return Ok("Manage Access Passed ..."); } /// /// a simple Action which returns a List of Authenticated User Claims /// /// string message which represent current user's claims [HttpGet("HiClaims")] [Authorize(Policy = XPolicies.User)] public ActionResult HiClaims() { // var result = new { name = User.Identity.Name, claims = User.Claims.Select(c => new { c.Type, c.Value }) }; // return Ok(result); } /// /// a simple Hello User for Checking Authentication and Policy /// /// string message which contains authenticated user name [HttpGet("HiUser")] [Authorize(Policy = XPolicies.User)] public ActionResult HiUser() { // var result = $"Hi User: {User.Identity.Name} ..."; // return Ok(result); } /// /// a simple Hello User for Checking Authentication and Policy /// /// string message which contains authenticated user name [HttpGet("HiEnabledUser")] [Authorize(Policy = XPolicies.EnabledUser)] public ActionResult HiEnabledUser() { // var result = $"Hi User: {User.Identity.Name} is Enabled ..."; // return Ok(result); } /// /// a simple Hello User for Checking Authentication and Policy /// /// string message which contains authenticated user name [HttpGet("HiAgent")] [Authorize(Policy = XPolicies.Agent)] public ActionResult HiAgent() { // var result = $"Hi Admin: {User.Identity.Name} ..."; // return Ok(result); } /// /// a simple Hello User for Checking Authentication and Policy /// /// string message which contains authenticated user name [HttpGet("HiEnabledAgent")] [Authorize(Policy = XPolicies.EnabledAgent)] public ActionResult HiEnabledAgent() { // var result = $"Hi Admin: {User.Identity.Name} is Enabled ..."; // return Ok(result); } /// /// a simple Hello User for Checking Authentication and Policy /// /// string message which contains authenticated user name [HttpGet("HiAdmin")] [Authorize(Policy = XPolicies.Admin)] public ActionResult HiAdmin() { // var result = $"Hi Admin: {User.Identity.Name} ..."; // return Ok(result); } /// /// a simple Hello User for Checking Authentication and Policy /// /// string message which contains authenticated user name [HttpGet("HiEnabledAdmin")] [Authorize(Policy = XPolicies.EnabledAdmin)] public ActionResult HiEnabledAdmin() { // var result = $"Hi Admin: {User.Identity.Name} is Enabled ..."; // return Ok(result); } #endregion } }