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