public SspAuthorizationMiddleware(RequestDelegate next, IOptions <SpineSetting> spineSettings, IMemoryCache memoryCache, INrlsValidation nrlsValidation) { _next = next; _spineSettings = spineSettings.Value; _cache = memoryCache; _nrlsValidation = nrlsValidation; }
public SpineAuthorizationTests() { var spineSettings = new SpineSetting { Asid = "999" }; var spineSettingsMock = new Mock <IOptions <SpineSetting> >(); spineSettingsMock.Setup(op => op.Value).Returns(spineSettings); var nrlsSettingsMock = new Mock <IOptionsSnapshot <NrlsApiSetting> >(); nrlsSettingsMock.Setup(op => op.Get(It.IsAny <string>())).Returns(AppSettings.NrlsApiSettings); var nrlsValidationMock = new Mock <INrlsValidation>(); nrlsValidationMock.Setup(x => x.ValidJwt(It.Is <Tuple <JwtScopes, string> >(q => q.Item1 == JwtScopes.Read), It.IsAny <string>())).Returns(new Response(true)); nrlsValidationMock.Setup(x => x.ValidJwt(It.Is <Tuple <JwtScopes, string> >(q => q.Item1 == JwtScopes.Write), It.IsAny <string>())).Returns(new Response()); nrlsValidationMock.Setup(x => x.ValidJwt(It.Is <Tuple <JwtScopes, string> >(q => q.Item1 == JwtScopes.Write), It.Is <string>(s => s.Contains("-for-patch")))).Returns(new Response(true)); var sdsMock = new Mock <ISdsService>(); sdsMock.Setup(op => op.GetFor(It.IsAny <string>())).Returns((SdsViewModel)null); sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "000"))).Returns(SdsViewModels.SdsAsid000); sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "002"))).Returns(SdsViewModels.SdsAsid002); sdsMock.Setup(op => op.GetFor(It.Is <string>(x => x == "20000000018"))).Returns(SdsViewModels.SdsAsid20000000018); _sdsService = sdsMock.Object; _spineSettings = spineSettingsMock.Object; _nrlsSettings = nrlsSettingsMock.Object; _nrlsValidation = nrlsValidationMock.Object; }
public SpineAuthorizationMiddleware(RequestDelegate next, IOptions <SpineSetting> spineSettings, ISdsService sdsService, INrlsValidation nrlsValidation) { _next = next; _spineSettings = spineSettings.Value; _sdsService = sdsService; _nrlsValidation = nrlsValidation; }
public static IWebHost BuildWebHost(string[] args) { var config = ConfigurationHelper.GetConfigurationRoot(); _spineSettings = new SpineSetting(); config.GetSection("Spine").Bind(_spineSettings); NrlsApiSetting apiSettings = new NrlsApiSetting(); config.GetSection("NRLSAPI").Bind(apiSettings); return(WebHost.CreateDefaultBuilder(args) .UseKestrel(options => { options.AddServerHeader = false; // if we use the apiSettings.Secure flag we can toggle the below // for demo we will leave both open // listen for HTTP if (!apiSettings.SecureOnly) { options.Listen(IPAddress.Any, int.Parse(apiSettings.DefaultPort)); } // listen for HTTPS if (apiSettings.Secure) { var certificate = ServerCertificate(); if (certificate != null) { options.Listen(IPAddress.Any, int.Parse(apiSettings.SecurePort), listenOptions => { listenOptions.UseHttps(new HttpsConnectionAdapterOptions { SslProtocols = SslProtocols.Tls12, CheckCertificateRevocation = false, //TODO: turn this on ClientCertificateMode = ClientCertificateMode.AllowCertificate, ServerCertificate = certificate, ClientCertificateValidation = (cert, chain, error) => ValidateClient(cert, chain, error) }); }); } } }) //.ConfigureLogging((hostingContext, logging) => { // logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); // logging.AddConsole(); // logging.AddDebug(); //}) .UseStartup <Startup>() .Build()); }
public SspAuthorizationTests() { var spineSettings = new SpineSetting { Asid = "999" }; var spineSettingsMock = new Mock <IOptions <SpineSetting> >(); spineSettingsMock.Setup(op => op.Value).Returns(spineSettings); var nrlsSettingsMock = new Mock <IOptionsSnapshot <NrlsApiSetting> >(); nrlsSettingsMock.Setup(op => op.Get(It.IsAny <string>())).Returns(AppSettings.NrlsApiSettings); var nrlsValidationMock = new Mock <INrlsValidation>(); nrlsValidationMock.Setup(x => x.ValidJwt(It.Is <JwtScopes>(q => q == JwtScopes.Read), It.IsAny <string>())).Returns(new Response(true)); nrlsValidationMock.Setup(x => x.ValidJwt(It.Is <JwtScopes>(q => q == JwtScopes.Write), It.IsAny <string>())).Returns(new Response()); var clientMapCache = new ClientAsidMap { ClientAsids = new Dictionary <string, ClientAsid>() { { "000", new ClientAsid { Interactions = new List <string> { "urn:nhs:names:services:nrls:fhir:rest:read:documentreference" }, OrgCode = "TestOrgCode", Thumbprint = "TestThumbprint" } }, { "002", new ClientAsid { Interactions = new List <string>(), OrgCode = "TestOrgCode2", Thumbprint = "TestThumbprint" } } } }; _cache = MemoryCacheStub.MockMemoryCacheService.GetMemoryCache(clientMapCache); _spineSettings = spineSettingsMock.Object; _nrlsSettings = nrlsSettingsMock.Object; _nrlsValidation = nrlsValidationMock.Object; }
public ClientInteractionCacheMiddleware(RequestDelegate next, IOptions <SpineSetting> spineSettings, IMemoryCache memoryCache) { _next = next; _spineSettings = spineSettings.Value; _cache = memoryCache; }