Merge pull request 'Configure authentication in program and endpoints' (#2) from feature/configure-authentication into development

Reviewed-on: https://gitea.white-enciso.pro/AgileWebs/Core.Thalos.Service.API/pulls/2
Reviewed-by: efrain_marin <efrain.marin@agilewebs.com>
Reviewed-by: Sergio Matías <sergio.matias@agilewebs.com>
This commit is contained in:
Sergio Matías 2025-07-18 00:59:03 +00:00
commit c1637b9e20
7 changed files with 60 additions and 65 deletions

View File

@ -8,7 +8,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Core.Blueprint.Storage" Version="1.0.0" /> <PackageReference Include="Core.Blueprint.Storage" Version="1.0.0" />
<PackageReference Include="Core.Thalos.BuildingBlocks" Version="1.0.2" /> <PackageReference Include="Core.Thalos.BuildingBlocks" Version="1.0.5" />
<PackageReference Include="Lib.Architecture.BuildingBlocks" Version="1.0.0" /> <PackageReference Include="Lib.Architecture.BuildingBlocks" Version="1.0.0" />
<PackageReference Include="Refit" Version="8.0.0" /> <PackageReference Include="Refit" Version="8.0.0" />
</ItemGroup> </ItemGroup>

View File

@ -17,6 +17,7 @@ namespace Core.Thalos.Service.API.Controllers
[Route("api/v{api-version:apiVersion}/[controller]")] [Route("api/v{api-version:apiVersion}/[controller]")]
[Produces("application/json")] [Produces("application/json")]
[ApiController] [ApiController]
[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
public class ModuleController : ControllerBase public class ModuleController : ControllerBase
{ {
private readonly IComponentHandler<GetModuleRequest> getModuleHandler; private readonly IComponentHandler<GetModuleRequest> getModuleHandler;
@ -60,8 +61,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("ModuleManagement.Read, RoleManagement.Read")]
//[Permission("ModuleManagement.Read, RoleManagement.Read")]
public async Task<IActionResult> GetAllModulesAsync(CancellationToken cancellationToken) public async Task<IActionResult> GetAllModulesAsync(CancellationToken cancellationToken)
{ {
await getAllModulesHandler.ExecuteAsync(new GetAllModulesRequest { }, cancellationToken).ConfigureAwait(false); await getAllModulesHandler.ExecuteAsync(new GetAllModulesRequest { }, cancellationToken).ConfigureAwait(false);
@ -91,8 +91,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("ModuleManagement.Read")]
//[Permission("ModuleManagement.Read")]
public async Task<IActionResult> GetAllModulesByListAsync([FromBody] GetAllModulesByListRequest request, CancellationToken cancellationToken) public async Task<IActionResult> GetAllModulesByListAsync([FromBody] GetAllModulesByListRequest request, CancellationToken cancellationToken)
{ {
@ -118,8 +117,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("ModuleManagement.Read")]
//[Permission("ModuleManagement.Read")]
public async Task<IActionResult> GetModuleById([FromBody] GetModuleRequest request, CancellationToken cancellationToken) public async Task<IActionResult> GetModuleById([FromBody] GetModuleRequest request, CancellationToken cancellationToken)
{ {
@ -144,8 +142,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("ModuleManagement.Write")]
//[Permission("ModuleManagement.Write")]
public async Task<IActionResult> CreateModuleAsync([FromBody] CreateModuleRequest newModule, CancellationToken cancellationToken = default) public async Task<IActionResult> CreateModuleAsync([FromBody] CreateModuleRequest newModule, CancellationToken cancellationToken = default)
{ {
await createModuleHandler.ExecuteAsync(newModule, cancellationToken).ConfigureAwait(false); await createModuleHandler.ExecuteAsync(newModule, cancellationToken).ConfigureAwait(false);
@ -164,8 +161,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("ModuleManagement.Write")]
//[Permission("ModuleManagement.Write")]
public async Task<IActionResult> UpdateModuleAsync([FromBody] UpdateModuleRequest request, CancellationToken cancellationToken = default) public async Task<IActionResult> UpdateModuleAsync([FromBody] UpdateModuleRequest request, CancellationToken cancellationToken = default)
{ {
await updateModuleHandler.ExecuteAsync(request, cancellationToken).ConfigureAwait(false); await updateModuleHandler.ExecuteAsync(request, cancellationToken).ConfigureAwait(false);
@ -185,8 +181,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("ModuleManagement.Write")]
//[Permission("ModuleManagement.Write")]
public async Task<IActionResult> ChangeModuleStatusAsync([FromBody] ChangeModuleStatusRequest request, public async Task<IActionResult> ChangeModuleStatusAsync([FromBody] ChangeModuleStatusRequest request,
CancellationToken cancellationToken) CancellationToken cancellationToken)
{ {

View File

@ -17,6 +17,7 @@ namespace Core.Thalos.Service.API.Controllers
[Route("api/v{api-version:apiVersion}/[controller]")] [Route("api/v{api-version:apiVersion}/[controller]")]
[Produces("application/json")] [Produces("application/json")]
[ApiController] [ApiController]
[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
public class PermissionController : ControllerBase public class PermissionController : ControllerBase
{ {
private readonly IComponentHandler<GetPermissionRequest> getPermissionHandler; private readonly IComponentHandler<GetPermissionRequest> getPermissionHandler;
@ -60,8 +61,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("PermissionManagement.Read, RoleManagement.Read")]
//[Permission("PermissionManagement.Read, RoleManagement.Read")]
public async Task<IActionResult> GetAllPermissionsAsync(CancellationToken cancellationToken) public async Task<IActionResult> GetAllPermissionsAsync(CancellationToken cancellationToken)
{ {
await getAllPermissionsHandler.ExecuteAsync(new GetAllPermissionsRequest { }, cancellationToken).ConfigureAwait(false); await getAllPermissionsHandler.ExecuteAsync(new GetAllPermissionsRequest { }, cancellationToken).ConfigureAwait(false);
@ -91,8 +91,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("PermissionManagement.Read")]
//[Permission("PermissionManagement.Read")]
public async Task<IActionResult> GetAllPermissionsByListAsync([FromBody] GetAllPermissionsByListRequest request, CancellationToken cancellationToken) public async Task<IActionResult> GetAllPermissionsByListAsync([FromBody] GetAllPermissionsByListRequest request, CancellationToken cancellationToken)
{ {
@ -118,8 +117,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("PermissionManagement.Read")]
//[Permission("PermissionManagement.Read")]
public async Task<IActionResult> GetPermissionById([FromBody] GetPermissionRequest request, CancellationToken cancellationToken) public async Task<IActionResult> GetPermissionById([FromBody] GetPermissionRequest request, CancellationToken cancellationToken)
{ {
@ -144,8 +142,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("PermissionManagement.Write")]
//[Permission("PermissionManagement.Write")]
public async Task<IActionResult> CreatePermissionAsync([FromBody] CreatePermissionRequest newPermission, CancellationToken cancellationToken = default) public async Task<IActionResult> CreatePermissionAsync([FromBody] CreatePermissionRequest newPermission, CancellationToken cancellationToken = default)
{ {
await createPermissionHandler.ExecuteAsync(newPermission, cancellationToken).ConfigureAwait(false); await createPermissionHandler.ExecuteAsync(newPermission, cancellationToken).ConfigureAwait(false);
@ -164,8 +161,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("PermissionManagement.Write")]
//[Permission("PermissionManagement.Write")]
public async Task<IActionResult> UpdatePermissionAsync([FromBody] UpdatePermissionRequest request, CancellationToken cancellationToken = default) public async Task<IActionResult> UpdatePermissionAsync([FromBody] UpdatePermissionRequest request, CancellationToken cancellationToken = default)
{ {
await updatePermissionHandler.ExecuteAsync(request, cancellationToken).ConfigureAwait(false); await updatePermissionHandler.ExecuteAsync(request, cancellationToken).ConfigureAwait(false);
@ -185,8 +181,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("PermissionManagement.Write")]
//[Permission("PermissionManagement.Write")]
public async Task<IActionResult> ChangePermissionStatusAsync([FromBody] ChangePermissionStatusRequest request, public async Task<IActionResult> ChangePermissionStatusAsync([FromBody] ChangePermissionStatusRequest request,
CancellationToken cancellationToken) CancellationToken cancellationToken)
{ {

View File

@ -16,7 +16,7 @@ namespace Core.Thalos.Service.API.Controllers
[Route("api/v{api-version:apiVersion}/[controller]")] [Route("api/v{api-version:apiVersion}/[controller]")]
[Produces("application/json")] [Produces("application/json")]
[ApiController] [ApiController]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
public class RoleController : ControllerBase public class RoleController : ControllerBase
{ {
private readonly IComponentHandler<GetRoleRequest> getRoleHandler; private readonly IComponentHandler<GetRoleRequest> getRoleHandler;
@ -63,8 +63,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("RoleManagement.Read")]
//[Permission("RoleManagement.Read")]
public async Task<IActionResult> GetAllRolesAsync(CancellationToken cancellationToken) public async Task<IActionResult> GetAllRolesAsync(CancellationToken cancellationToken)
{ {
await getAllRolesHandler.ExecuteAsync(new GetAllRolesRequest { }, cancellationToken).ConfigureAwait(false); await getAllRolesHandler.ExecuteAsync(new GetAllRolesRequest { }, cancellationToken).ConfigureAwait(false);
@ -84,8 +83,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("RoleManagement.Read")]
//[Permission("RoleManagement.Read")]
public async Task<IActionResult> GetRoleById([FromBody] GetRoleRequest request, CancellationToken cancellationToken) public async Task<IActionResult> GetRoleById([FromBody] GetRoleRequest request, CancellationToken cancellationToken)
{ {
if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid role identifier"); } if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid role identifier"); }
@ -106,8 +104,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("RoleManagement.Write")]
//[Permission("RoleManagement.Write")]
public async Task<IActionResult> CreateRoleAsync([FromBody] CreateRoleRequest newRole, CancellationToken cancellationToken = default) public async Task<IActionResult> CreateRoleAsync([FromBody] CreateRoleRequest newRole, CancellationToken cancellationToken = default)
{ {
await createRoleHandler.ExecuteAsync(newRole, cancellationToken).ConfigureAwait(false); await createRoleHandler.ExecuteAsync(newRole, cancellationToken).ConfigureAwait(false);
@ -126,8 +123,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("RoleManagement.Write")]
//[Permission("RoleManagement.Write")]
public async Task<IActionResult> UpdateRoleAsync([FromBody] UpdateRoleRequest entity, CancellationToken cancellationToken = default) public async Task<IActionResult> UpdateRoleAsync([FromBody] UpdateRoleRequest entity, CancellationToken cancellationToken = default)
{ {
await updateRoleHandler.ExecuteAsync(entity, cancellationToken).ConfigureAwait(false); await updateRoleHandler.ExecuteAsync(entity, cancellationToken).ConfigureAwait(false);
@ -147,8 +143,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("RoleManagement.Write")]
//[Permission("RoleManagement.Write")]
public async Task<IActionResult> ChageRoleStatusAsync(ChangeRoleStatusRequest request, CancellationToken cancellationToken) public async Task<IActionResult> ChageRoleStatusAsync(ChangeRoleStatusRequest request, CancellationToken cancellationToken)
{ {
if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid role identifier"); } if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid role identifier"); }
@ -170,8 +165,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("RoleManagement.Write")]
//[Permission("RoleManagement.Write")]
public async Task<IActionResult> AddApplicationToRoleAsync(AddApplicationToRoleRequest request, CancellationToken cancellationToken) public async Task<IActionResult> AddApplicationToRoleAsync(AddApplicationToRoleRequest request, CancellationToken cancellationToken)
{ {
if (string.IsNullOrEmpty(request.RoleId)) { return BadRequest("Invalid role identifier"); } if (string.IsNullOrEmpty(request.RoleId)) { return BadRequest("Invalid role identifier"); }
@ -193,8 +187,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Permission("RoleManagement.Write")]
//[Permission("RoleManagement.Write")]
public async Task<IActionResult> RemoveApplicationToRoleAsync(RemoveApplicationFromRoleRequest request, public async Task<IActionResult> RemoveApplicationToRoleAsync(RemoveApplicationFromRoleRequest request,
CancellationToken cancellationToken) CancellationToken cancellationToken)
{ {

View File

@ -84,8 +84,8 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
//[Permission("UserManagement.Read")] [Permission("UserManagement.Read")]
public async Task<IActionResult> GetAllUsersAsync(CancellationToken cancellationToken) public async Task<IActionResult> GetAllUsersAsync(CancellationToken cancellationToken)
{ {
await getAllUsersHandler.ExecuteAsync(new GetAllUsersRequest { }, cancellationToken).ConfigureAwait(false); await getAllUsersHandler.ExecuteAsync(new GetAllUsersRequest { }, cancellationToken).ConfigureAwait(false);
@ -105,8 +105,8 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
//[Permission("UserManagement.Read")] [Permission("UserManagement.Read")]
public async Task<IActionResult> GetUserById([FromBody] GetUserRequest request, CancellationToken cancellationToken) public async Task<IActionResult> GetUserById([FromBody] GetUserRequest request, CancellationToken cancellationToken)
{ {
if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid user identifier"); } if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid user identifier"); }
@ -128,7 +128,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = $"{Schemes.DefaultScheme}, {Schemes.AzureScheme}")] [Authorize(AuthenticationSchemes = $"{Schemes.DefaultScheme}, {Schemes.GoogleScheme}")]
public async Task<IActionResult> GetUserByEmail([FromBody] GetUserByEmailRequest request, CancellationToken cancellationToken) public async Task<IActionResult> GetUserByEmail([FromBody] GetUserByEmailRequest request, CancellationToken cancellationToken)
{ {
if (string.IsNullOrEmpty(request.Email)) { return BadRequest("Invalid user email"); } if (string.IsNullOrEmpty(request.Email)) { return BadRequest("Invalid user email"); }
@ -150,8 +150,8 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
//[Permission("UserManagement.Write")] [Permission("UserManagement.Write")]
public async Task<IActionResult> CreateUserAsync([FromBody] CreateUserRequest newUser, CancellationToken cancellationToken = default) public async Task<IActionResult> CreateUserAsync([FromBody] CreateUserRequest newUser, CancellationToken cancellationToken = default)
{ {
await createUserHandler.ExecuteAsync(newUser, cancellationToken).ConfigureAwait(false); await createUserHandler.ExecuteAsync(newUser, cancellationToken).ConfigureAwait(false);
@ -170,8 +170,8 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
//[Permission("UserManagement.Write")] [Permission("UserManagement.Write")]
public async Task<IActionResult> UpdateUserAsync([FromBody] UpdateUserRequest request, public async Task<IActionResult> UpdateUserAsync([FromBody] UpdateUserRequest request,
CancellationToken cancellationToken = default) CancellationToken cancellationToken = default)
{ {
@ -191,7 +191,7 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = $"{Schemes.DefaultScheme}, {Schemes.AzureScheme}")] [Authorize(AuthenticationSchemes = $"{Schemes.DefaultScheme}, {Schemes.GoogleScheme}")]
public async Task<IActionResult> LoginUserAsync([FromBody] LoginUserRequest request, CancellationToken cancellationToken) public async Task<IActionResult> LoginUserAsync([FromBody] LoginUserRequest request, CancellationToken cancellationToken)
{ {
if (string.IsNullOrEmpty(request.Email)) { return BadRequest("Invalid user email"); } if (string.IsNullOrEmpty(request.Email)) { return BadRequest("Invalid user email"); }
@ -233,8 +233,8 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
//[Permission("UserManagement.Write")] [Permission("UserManagement.Write")]
public async Task<IActionResult> ChangeUserStatusAsync([FromBody] ChangeUserStatusRequest request, CancellationToken cancellationToken) public async Task<IActionResult> ChangeUserStatusAsync([FromBody] ChangeUserStatusRequest request, CancellationToken cancellationToken)
{ {
if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid user identifier"); } if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid user identifier"); }
@ -256,8 +256,8 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
//[Permission("UserManagement.Write")] [Permission("UserManagement.Write")]
public async Task<IActionResult> AddCompanyToUserAsync([FromBody] AddCompanyToUserRequest request, public async Task<IActionResult> AddCompanyToUserAsync([FromBody] AddCompanyToUserRequest request,
CancellationToken cancellationToken) CancellationToken cancellationToken)
{ {
@ -281,8 +281,8 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
//[Permission("UserManagement.Write")] [Permission("UserManagement.Write")]
public async Task<IActionResult> RemoveCompanyFromUserAsync([FromBody] RemoveCompanyFromUserRequest request, public async Task<IActionResult> RemoveCompanyFromUserAsync([FromBody] RemoveCompanyFromUserRequest request,
CancellationToken cancellationToken) CancellationToken cancellationToken)
{ {
@ -306,8 +306,8 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
//[Permission("UserManagement.Write")] [Permission("UserManagement.Write")]
public async Task<IActionResult> AddProjectToUserAsync([FromBody] AddProjectToUserRequest request, public async Task<IActionResult> AddProjectToUserAsync([FromBody] AddProjectToUserRequest request,
CancellationToken cancellationToken) CancellationToken cancellationToken)
{ {
@ -331,8 +331,8 @@ namespace Core.Thalos.Service.API.Controllers
[ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)]
[ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)] [ProducesResponseType(StatusCodes.Status500InternalServerError)]
//[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)]
//[Permission("UserManagement.Write")] [Permission("UserManagement.Write")]
public async Task<IActionResult> RemoveProjectFromUserAsync([FromBody] RemoveProjectFromUserRequest request, public async Task<IActionResult> RemoveProjectFromUserAsync([FromBody] RemoveProjectFromUserRequest request,
CancellationToken cancellationToken) CancellationToken cancellationToken)
{ {
@ -373,7 +373,7 @@ namespace Core.Thalos.Service.API.Controllers
[HttpPost] [HttpPost]
[Route("GetTokenAdapter")] [Route("GetTokenAdapter")]
[ProducesResponseType(typeof(TokenAdapter), StatusCodes.Status200OK)] [ProducesResponseType(typeof(TokenAdapter), StatusCodes.Status200OK)]
//[Authorize(AuthenticationSchemes = $"{Schemes.DefaultScheme}, {Schemes.AzureScheme}")] [Authorize(AuthenticationSchemes = $"{Schemes.DefaultScheme}, {Schemes.GoogleScheme}")]
public async Task<IActionResult> GetTokenAdapter([FromBody] GetTokenAdapterRequest request, CancellationToken cancellationToken) public async Task<IActionResult> GetTokenAdapter([FromBody] GetTokenAdapterRequest request, CancellationToken cancellationToken)
{ {
if (string.IsNullOrEmpty(request.Email)) { return BadRequest("Invalid user email"); } if (string.IsNullOrEmpty(request.Email)) { return BadRequest("Invalid user email"); }

View File

@ -1,5 +1,6 @@
using Core.Blueprint.Logging.Configuration; using Core.Blueprint.Logging.Configuration;
using Core.Thalos.Adapters.Extensions; using Core.Thalos.Adapters.Extensions;
using Core.Thalos.BuildingBlocks.Authentication.Extensions;
using Core.Thalos.External.ClientConfiguration; using Core.Thalos.External.ClientConfiguration;
using Core.Thalos.Service.API.Extensions; using Core.Thalos.Service.API.Extensions;
using Microsoft.AspNetCore.HttpLogging; using Microsoft.AspNetCore.HttpLogging;
@ -8,9 +9,7 @@ using System.Text.Json.Serialization;
var builder = WebApplication.CreateBuilder(args); var builder = WebApplication.CreateBuilder(args);
//var authSettings = AuthHelper.GetAuthSettings(builder, "thalos_service"); builder.Services.ConfigureAuthentication(builder.Configuration);
//builder.Services.ConfigureAuthentication(builder.Configuration, authSettings);
builder.Services.AddLogs(builder); builder.Services.AddLogs(builder);

View File

@ -8,5 +8,18 @@
"AllowedHosts": "*", "AllowedHosts": "*",
"LocalGateways": { "LocalGateways": {
"ThalosDAL": "https://localhost:7031/api" "ThalosDAL": "https://localhost:7031/api"
},
"Authentication": {
"Google": {
"ClientId": "128345072002-mtfdgpcur44o9tbd7q6e0bb9qnp2crfp.apps.googleusercontent.com",
"ClientSecret": "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",
"ApplicationName": "Thalos",
"RedirectUri": "https://localhost:7239/api/v1/Authentication/callback"
} }
},
"JwtIssuerOptions": {
"Audience": "https://localhost:7239/",
"Issuer": "webApi"
},
"SecretKey": "iNivDmHLpUA223sqsfhqGbMRdRj1PVkH1"
} }