From a1e305872a0c23ec208ff297fb0bdbd4803e964b Mon Sep 17 00:00:00 2001 From: OluwatobiAwe Date: Wed, 13 Aug 2025 12:47:52 +0100 Subject: [PATCH] TD-5490 auth issues for LH api request when user is yet to login --- .../Controllers/BookmarkController.cs | 2 ++ .../Controllers/CatalogueController.cs | 1 + .../Controllers/ResourceController.cs | 1 + .../Controllers/SearchController.cs | 2 ++ OpenAPI/LearningHub.Nhs.OpenApi/Startup.cs | 18 ++++++++++-------- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/BookmarkController.cs b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/BookmarkController.cs index 867f295f6..4adaebe2b 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/BookmarkController.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/BookmarkController.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using LearningHub.Nhs.Models.Bookmark; using LearningHub.Nhs.OpenApi.Services.Interface.Services; + using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; /// @@ -11,6 +12,7 @@ /// [Route("Bookmark")] [ApiController] + [Authorize] public class BookmarkController : OpenApiControllerBase { private readonly IBookmarkService bookmarkService; diff --git a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/CatalogueController.cs b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/CatalogueController.cs index 356865974..15926b75e 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/CatalogueController.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/CatalogueController.cs @@ -14,6 +14,7 @@ /// [Route("Catalogue")] [Authorize] + [ApiController] public class CatalogueController : OpenApiControllerBase { private readonly ICatalogueService catalogueService; diff --git a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/ResourceController.cs b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/ResourceController.cs index 98ae2417c..343906d96 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/ResourceController.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/ResourceController.cs @@ -29,6 +29,7 @@ namespace LearningHub.NHS.OpenAPI.Controllers /// [Route("Resource")] [Authorize] + [ApiController] public class ResourceController : OpenApiControllerBase { private const int MaxNumberOfReferenceIds = 1000; diff --git a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/SearchController.cs b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/SearchController.cs index b8a0b5aa2..2b463125b 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/SearchController.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/SearchController.cs @@ -11,6 +11,7 @@ using LearningHub.Nhs.OpenApi.Models.Configuration; using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories; using LearningHub.Nhs.OpenApi.Services.Interface.Services; + using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; @@ -18,6 +19,7 @@ /// /// Search operations. /// + [Authorize] [Route("Search")] [ApiController] public class SearchController : OpenApiControllerBase diff --git a/OpenAPI/LearningHub.Nhs.OpenApi/Startup.cs b/OpenAPI/LearningHub.Nhs.OpenApi/Startup.cs index e5f9c180e..dfe34b2b8 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi/Startup.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi/Startup.cs @@ -8,10 +8,12 @@ namespace LearningHub.NHS.OpenAPI using System.Collections.Generic; using System.IO; using AspNetCore.Authentication.ApiKey; + using LearningHub.Nhs.Api.Authentication; using LearningHub.Nhs.Caching; using LearningHub.Nhs.Models.Enums; using LearningHub.Nhs.Models.Extensions; using LearningHub.NHS.OpenAPI.Auth; + using LearningHub.NHS.OpenAPI.Authentication; using LearningHub.NHS.OpenAPI.Configuration; using LearningHub.NHS.OpenAPI.Middleware; using LearningHub.Nhs.OpenApi.Repositories; @@ -19,9 +21,9 @@ namespace LearningHub.NHS.OpenAPI using LearningHub.Nhs.OpenApi.Services; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.JwtBearer; + using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; - using Microsoft.AspNetCore.Mvc.Authorization; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -29,9 +31,6 @@ namespace LearningHub.NHS.OpenAPI using Microsoft.Extensions.Hosting; using Microsoft.IdentityModel.Tokens; using Microsoft.OpenApi.Models; - using Microsoft.AspNetCore.Authorization; - using LearningHub.NHS.OpenAPI.Authentication; - using LearningHub.Nhs.Api.Authentication; /// /// The Startup class. @@ -62,8 +61,12 @@ public void ConfigureServices(IServiceCollection services) services.AddApiKeyAuth(); - services.AddAuthentication() - .AddJwtBearer(options => + services.AddAuthentication(options => + { + options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; + options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; + }) + .AddJwtBearer(options => { options.Authority = this.Configuration.GetValue("LearningHUbAuthServiceConfig:Authority"); options.TokenValidationParameters = new TokenValidationParameters() @@ -76,7 +79,7 @@ public void ConfigureServices(IServiceCollection services) }); services.AddCustomMiddleware(); - services.AddSingleton(); + services.AddSingleton(); services.AddSingleton(); services.AddRepositories(this.Configuration); @@ -89,7 +92,6 @@ public void ConfigureServices(IServiceCollection services) services.AddControllers(options => { options.Filters.Add(new HttpResponseExceptionFilter()); - options.Filters.Add(new AuthorizeFilter()); }); services.AddMvc()