From 6fcede701a443d71d21de5a1311f9acbc4131cd9 Mon Sep 17 00:00:00 2001 From: Tom Pallister Date: Wed, 1 Nov 2017 09:30:42 +0000 Subject: [PATCH] holy mother of god all tests passing .net core 2.0 upgrade.... --- .../Middleware/AuthenticationMiddleware.cs | 50 +------------------ .../Configuration/Builder/ReRouteBuilder.cs | 10 +++- .../Creator/FileOcelotConfigurationCreator.cs | 1 + src/Ocelot/Configuration/ReRoute.cs | 5 +- 4 files changed, 16 insertions(+), 50 deletions(-) diff --git a/src/Ocelot/Authentication/Middleware/AuthenticationMiddleware.cs b/src/Ocelot/Authentication/Middleware/AuthenticationMiddleware.cs index c0bb3144..8b8fb640 100644 --- a/src/Ocelot/Authentication/Middleware/AuthenticationMiddleware.cs +++ b/src/Ocelot/Authentication/Middleware/AuthenticationMiddleware.cs @@ -1,16 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Security.Claims; -using System.Text.Encodings.Web; +using System.Collections.Generic; using System.Threading.Tasks; -using IdentityServer4.AccessTokenValidation; -using IdentityServer4.Extensions; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; using Ocelot.Authentication.Handler.Factory; using Ocelot.Configuration; using Ocelot.Errors; @@ -48,7 +40,7 @@ namespace Ocelot.Authentication.Middleware { _logger.LogDebug($"{context.Request.Path} is an authenticated route. {MiddlewareName} checking if client is authenticated"); - var result = await context.AuthenticateAsync(DownstreamRoute.ReRoute.AuthenticationOptions.Provider); + var result = await context.AuthenticateAsync(DownstreamRoute.ReRoute.AuthenticationProviderKey); context.User = result.Principal; @@ -82,43 +74,5 @@ namespace Ocelot.Authentication.Middleware return reRoute.IsAuthenticated; } } - - public class TestHandler : AuthenticationHandler - { - public TestHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock) : base(options, logger, encoder, clock) - { - } - - protected override Task HandleAuthenticateAsync() - { - var principal = new ClaimsPrincipal(); - var id = new ClaimsIdentity("Ocelot"); - id.AddClaim(new Claim(ClaimTypes.NameIdentifier, Scheme.Name, ClaimValueTypes.String, Scheme.Name)); - if (Options.Instance != null) - { - id.AddClaim(new Claim("Count", Options.Instance.Count.ToString())); - } - principal.AddIdentity(id); - return Task.FromResult(AuthenticateResult.Success(new AuthenticationTicket(principal, new AuthenticationProperties(), Scheme.Name))); - } - } - - public class TestOptions : AuthenticationSchemeOptions - { - public Singleton Instance { get; set; } - } - - public class Singleton - { - public static int _count; - - public Singleton() - { - _count++; - Count = _count; - } - - public int Count { get; } - } } diff --git a/src/Ocelot/Configuration/Builder/ReRouteBuilder.cs b/src/Ocelot/Configuration/Builder/ReRouteBuilder.cs index 852c4870..5281985a 100644 --- a/src/Ocelot/Configuration/Builder/ReRouteBuilder.cs +++ b/src/Ocelot/Configuration/Builder/ReRouteBuilder.cs @@ -31,6 +31,7 @@ namespace Ocelot.Configuration.Builder private QoSOptions _qosOptions; public bool _enableRateLimiting; public RateLimitOptions _rateLimitOptions; + private string _authenticationProviderKey; public ReRouteBuilder WithLoadBalancer(string loadBalancer) { @@ -176,6 +177,12 @@ namespace Ocelot.Configuration.Builder return this; } + public ReRouteBuilder WithAuthenticationProviderKey(string authenticationProviderKey) + { + _authenticationProviderKey = authenticationProviderKey; + return this; + } + public ReRoute Build() { @@ -203,7 +210,8 @@ namespace Ocelot.Configuration.Builder _useQos, _qosOptions, _enableRateLimiting, - _rateLimitOptions); + _rateLimitOptions, + _authenticationProviderKey); } } } diff --git a/src/Ocelot/Configuration/Creator/FileOcelotConfigurationCreator.cs b/src/Ocelot/Configuration/Creator/FileOcelotConfigurationCreator.cs index fe796ddb..f241c8f2 100644 --- a/src/Ocelot/Configuration/Creator/FileOcelotConfigurationCreator.cs +++ b/src/Ocelot/Configuration/Creator/FileOcelotConfigurationCreator.cs @@ -168,6 +168,7 @@ namespace Ocelot.Configuration.Creator .WithQosOptions(qosOptions) .WithEnableRateLimiting(fileReRouteOptions.EnableRateLimiting) .WithRateLimitOptions(rateLimitOption) + .WithAuthenticationProviderKey(fileReRoute.AuthenticationProviderKey) .Build(); await SetupLoadBalancer(reRoute); diff --git a/src/Ocelot/Configuration/ReRoute.cs b/src/Ocelot/Configuration/ReRoute.cs index 2b8734c4..75040be7 100644 --- a/src/Ocelot/Configuration/ReRoute.cs +++ b/src/Ocelot/Configuration/ReRoute.cs @@ -29,7 +29,8 @@ namespace Ocelot.Configuration bool isQos, QoSOptions qosOptions, bool enableEndpointRateLimiting, - RateLimitOptions ratelimitOptions) + RateLimitOptions ratelimitOptions, + string authenticationProviderKey) { ReRouteKey = reRouteKey; ServiceProviderConfiguraion = serviceProviderConfiguraion; @@ -58,6 +59,7 @@ namespace Ocelot.Configuration QosOptionsOptions = qosOptions; EnableEndpointEndpointRateLimiting = enableEndpointRateLimiting; RateLimitOptions = ratelimitOptions; + AuthenticationProviderKey = authenticationProviderKey; } public string ReRouteKey {get;private set;} @@ -84,5 +86,6 @@ namespace Ocelot.Configuration public ServiceProviderConfiguration ServiceProviderConfiguraion { get; private set; } public bool EnableEndpointEndpointRateLimiting { get; private set; } public RateLimitOptions RateLimitOptions { get; private set; } + public string AuthenticationProviderKey { get; private set; } } } \ No newline at end of file