Removed unused usings, removed empty spaces, removed tons os warnings (#903)

This commit is contained in:
Thiago Loureiro 2019-05-28 11:00:54 +08:00 committed by GitHub
parent 4476f8273e
commit 5d82e68534
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
486 changed files with 3049 additions and 3143 deletions

View File

@ -4,10 +4,10 @@ namespace Ocelot.Administration
public interface IIdentityServerConfiguration
{
string ApiName { get; }
string ApiSecret { get; }
bool RequireHttps { get; }
List<string> AllowedScopes { get; }
string ApiName { get; }
string ApiSecret { get; }
bool RequireHttps { get; }
List<string> AllowedScopes { get; }
string CredentialsSigningCertificateLocation { get; }
string CredentialsSigningCertificatePassword { get; }
}

View File

@ -1,11 +1,10 @@
namespace Ocelot.Administration
{
using System.Threading.Tasks;
using Configuration;
using Configuration.Repository;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Ocelot.Middleware;
using System.Threading.Tasks;
public static class IdentityServerMiddlewareConfigurationProvider
{

View File

@ -1,14 +1,6 @@
namespace Ocelot.Administration
{
using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using Configuration;
using Configuration.Creator;
using DependencyInjection;
using IdentityModel;
using IdentityServer4.AccessTokenValidation;
using IdentityServer4.Models;
using Microsoft.AspNetCore.Builder;
@ -16,6 +8,10 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Ocelot.Middleware;
using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Cryptography.X509Certificates;
public static class OcelotBuilderExtensions
{
@ -61,7 +57,8 @@
{
builder.Services.TryAddSingleton<IIdentityServerConfiguration>(identityServerConfiguration);
var identityServerBuilder = builder.Services
.AddIdentityServer(o => {
.AddIdentityServer(o =>
{
o.IssuerUri = "Ocelot";
})
.AddInMemoryApiResources(Resources(identityServerConfiguration))

View File

@ -1,12 +1,12 @@
namespace Ocelot.Cache.CacheManager
{
using System;
using Configuration;
using Configuration.File;
using DependencyInjection;
using global::CacheManager.Core;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using System;
public static class OcelotBuilderExtensions
{

View File

@ -1,7 +1,7 @@
namespace Ocelot.Cache.CacheManager
{
using System;
using global::CacheManager.Core;
using System;
public class OcelotCacheManagerCache<T> : IOcelotCache<T>
{

View File

@ -1,16 +1,15 @@
namespace Ocelot.Provider.Consul
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using global::Consul;
using Infrastructure.Extensions;
using Logging;
using ServiceDiscovery.Providers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Values;
public class Consul : IServiceDiscoveryProvider
{
private readonly ConsulRegistryConfiguration _config;

View File

@ -1,7 +1,7 @@
namespace Ocelot.Provider.Consul
{
using System;
using global::Consul;
using System;
public class ConsulClientFactory : IConsulClientFactory
{

View File

@ -1,14 +1,14 @@
namespace Ocelot.Provider.Consul
{
using System;
using System.Text;
using System.Threading.Tasks;
using Configuration.File;
using Configuration.Repository;
using global::Consul;
using Logging;
using Newtonsoft.Json;
using Responses;
using System;
using System.Text;
using System.Threading.Tasks;
public class ConsulFileConfigurationRepository : IFileConfigurationRepository
{

View File

@ -1,8 +1,5 @@
namespace Ocelot.Provider.Consul
{
using System;
using System.Linq;
using System.Threading.Tasks;
using Configuration.Creator;
using Configuration.File;
using Configuration.Repository;
@ -11,6 +8,9 @@
using Microsoft.Extensions.Options;
using Middleware;
using Responses;
using System;
using System.Linq;
using System.Threading.Tasks;
public static class ConsulMiddlewareConfigurationProvider
{

View File

@ -1,8 +1,6 @@
namespace Ocelot.Provider.Consul
{
using System.Threading.Tasks;
using Logging;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using ServiceDiscovery;

View File

@ -1,10 +1,10 @@
namespace Ocelot.Provider.Consul
{
using Logging;
using ServiceDiscovery.Providers;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Logging;
using ServiceDiscovery.Providers;
using Values;
public class PollConsul : IServiceDiscoveryProvider

View File

@ -4,7 +4,7 @@
public class UnableToSetConfigInConsulError : Error
{
public UnableToSetConfigInConsulError(string s)
public UnableToSetConfigInConsulError(string s)
: base(s, OcelotErrorCode.UnknownError)
{
}

View File

@ -1,10 +1,10 @@
namespace Ocelot.Provider.Eureka
{
using ServiceDiscovery.Providers;
using Steeltoe.Common.Discovery;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using ServiceDiscovery.Providers;
using Steeltoe.Common.Discovery;
using Values;
public class Eureka : IServiceDiscoveryProvider

View File

@ -1,11 +1,11 @@
namespace Ocelot.Provider.Eureka
{
using System.Threading.Tasks;
using Configuration;
using Configuration.Repository;
using Microsoft.Extensions.DependencyInjection;
using Middleware;
using Steeltoe.Discovery.Client;
using System.Threading.Tasks;
public class EurekaMiddlewareConfigurationProvider
{

View File

@ -2,7 +2,6 @@
{
using Microsoft.Extensions.DependencyInjection;
using ServiceDiscovery;
using ServiceDiscovery.Providers;
using Steeltoe.Common.Discovery;
public static class EurekaProviderFactory

View File

@ -1,12 +1,12 @@
namespace Ocelot.Provider.Eureka
{
using System.Linq;
using DependencyInjection;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Middleware;
using Steeltoe.Discovery.Client;
using ServiceDiscovery;
using Steeltoe.Discovery.Client;
using System.Linq;
public static class OcelotBuilderExtensions
{

View File

@ -22,7 +22,6 @@ namespace Ocelot.Provider.Kubernetes
this.kubeApi = kubeApi;
}
public async Task<List<Service>> Get()
{
var service = await kubeApi.ServicesV1()

View File

@ -1,7 +1,4 @@
using KubeClient;
using System;
namespace Ocelot.Provider.Kubernetes
namespace Ocelot.Provider.Kubernetes
{
public class KubeRegistryConfiguration
{

View File

@ -1,15 +1,13 @@
using Polly;
using System.Collections.Generic;
using System.Linq;
using Polly;
using Polly.CircuitBreaker;
using Polly.Timeout;
namespace Ocelot.Provider.Polly
{
public class CircuitBreaker
{
private readonly List<IAsyncPolicy> _policies = new List<IAsyncPolicy>();
public CircuitBreaker(params IAsyncPolicy[] policies)
{
foreach (var policy in policies.Where(p => p != null))
@ -17,7 +15,7 @@ namespace Ocelot.Provider.Polly
this._policies.Add(policy);
}
}
public IAsyncPolicy[] Policies => this._policies.ToArray();
}
}

View File

@ -1,9 +1,5 @@
namespace Ocelot.Provider.Polly
{
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
using Configuration;
using DependencyInjection;
using Errors;
@ -12,6 +8,10 @@
using Logging;
using Microsoft.Extensions.DependencyInjection;
using Requester;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
public static class OcelotBuilderExtensions
{
@ -31,7 +31,7 @@
return new PollyCircuitBreakingDelegatingHandler(new PollyQoSProvider(reRoute, logger), logger);
}
builder.Services.AddSingleton((QosDelegatingHandlerDelegate) QosDelegatingHandlerDelegate);
builder.Services.AddSingleton((QosDelegatingHandlerDelegate)QosDelegatingHandlerDelegate);
return builder;
}
}

View File

@ -1,9 +1,9 @@
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Ocelot.Logging;
using Polly;
using Polly.CircuitBreaker;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
namespace Ocelot.Provider.Polly
{
@ -26,11 +26,11 @@ namespace Ocelot.Provider.Polly
{
return await Policy
.WrapAsync(_qoSProvider.CircuitBreaker.Policies)
.ExecuteAsync(() => base.SendAsync(request,cancellationToken));
.ExecuteAsync(() => base.SendAsync(request, cancellationToken));
}
catch (BrokenCircuitException ex)
{
_logger.LogError($"Reached to allowed number of exceptions. Circuit is open",ex);
_logger.LogError($"Reached to allowed number of exceptions. Circuit is open", ex);
throw;
}
catch (HttpRequestException ex)

View File

@ -1,12 +1,12 @@
namespace Ocelot.Provider.Polly
{
using System;
using System.Net.Http;
using global::Polly;
using global::Polly.CircuitBreaker;
using global::Polly.Timeout;
using Ocelot.Configuration;
using Ocelot.Logging;
using System;
using System.Net.Http;
public class PollyQoSProvider
{

View File

@ -1,7 +1,7 @@
namespace Ocelot.Provider.Polly
{
using System;
using Errors;
using System;
public class RequestTimedOutError : Error
{

View File

@ -1,14 +1,13 @@
namespace Ocelot.Provider.Rafty
{
using System.Net.Http;
using Configuration;
using Administration;
using Configuration.Repository;
using global::Rafty.Concensus.Peers;
using global::Rafty.Infrastructure;
using Microsoft.Extensions.Options;
using Middleware;
using System.Collections.Generic;
using Administration;
using System.Net.Http;
public class FilePeersProvider : IPeersProvider
{

View File

@ -1,7 +1,6 @@
namespace Ocelot.Provider.Rafty
{
using System.Net.Http;
using System.Threading.Tasks;
using Administration;
using Configuration;
using global::Rafty.Concensus.Messages;
using global::Rafty.Concensus.Peers;
@ -11,7 +10,8 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using Administration;
using System.Net.Http;
using System.Threading.Tasks;
public class HttpPeer : IPeer
{

View File

@ -1,9 +1,9 @@
namespace Ocelot.Provider.Rafty
{
using System.Threading.Tasks;
using Configuration.Setter;
using global::Rafty.FiniteStateMachine;
using global::Rafty.Log;
using System.Threading.Tasks;
public class OcelotFiniteStateMachine : IFiniteStateMachine
{

View File

@ -1,8 +1,5 @@
namespace Ocelot.Provider.Rafty
{
using System;
using System.IO;
using System.Threading.Tasks;
using global::Rafty.Concensus.Messages;
using global::Rafty.Concensus.Node;
using global::Rafty.FiniteStateMachine;
@ -11,6 +8,9 @@
using Microsoft.AspNetCore.Mvc;
using Middleware;
using Newtonsoft.Json;
using System;
using System.IO;
using System.Threading.Tasks;
[Authorize]
[Route("raft")]

View File

@ -1,10 +1,10 @@
namespace Ocelot.Provider.Rafty
{
using System.Threading.Tasks;
using Configuration.File;
using Configuration.Setter;
using global::Rafty.Concensus.Node;
using global::Rafty.Infrastructure;
using System.Threading.Tasks;
public class RaftyFileConfigurationSetter : IFileConfigurationSetter
{

View File

@ -1,12 +1,12 @@
namespace Ocelot.Provider.Rafty
{
using System.Threading.Tasks;
using global::Rafty.Concensus.Node;
using global::Rafty.Infrastructure;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Middleware;
using Microsoft.AspNetCore.Hosting;
using System.Threading.Tasks;
public static class RaftyMiddlewareConfigurationProvider
{

View File

@ -1,15 +1,15 @@
namespace Ocelot.Provider.Rafty
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using global::Rafty.Infrastructure;
using global::Rafty.Log;
using Microsoft.Data.Sqlite;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
public class SqlLiteLog : ILog
{

View File

@ -1,9 +1,10 @@
namespace Ocelot.Provider.Rafty
{
using Errors;
public class UnableToSaveAcceptCommand : Error
{
public UnableToSaveAcceptCommand(string message)
public UnableToSaveAcceptCommand(string message)
: base(message, OcelotErrorCode.UnknownError)
{
}

View File

@ -1,17 +1,17 @@
namespace Ocelot.Tracing.Butterfly
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using global::Butterfly.Client.AspNetCore;
using global::Butterfly.Client.Tracing;
using global::Butterfly.OpenTracing;
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
public class ButterflyTracer : DelegatingHandler, Logging.ITracer
{
@ -25,7 +25,7 @@
public void Event(HttpContext httpContext, string @event)
{
// todo - if the user isnt using tracing the code gets here and will blow up on
// todo - if the user isnt using tracing the code gets here and will blow up on
// _tracer.Tracer.TryExtract..
if (_tracer == null)
{
@ -52,8 +52,8 @@
public Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken,
Action<string> addTraceIdToRepo,
CancellationToken cancellationToken,
Action<string> addTraceIdToRepo,
Func<HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> baseSendAsync)
{
return _tracer.ChildTraceAsync($"httpclient {request.Method}", DateTimeOffset.UtcNow, span => TracingSendAsync(span, request, cancellationToken, addTraceIdToRepo, baseSendAsync));
@ -62,8 +62,8 @@
protected virtual async Task<HttpResponseMessage> TracingSendAsync(
ISpan span,
HttpRequestMessage request,
CancellationToken cancellationToken,
Action<string> addTraceIdToRepo,
CancellationToken cancellationToken,
Action<string> addTraceIdToRepo,
Func<HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> baseSendAsync)
{
if (request.Headers.Contains(PrefixSpanId))

View File

@ -1,10 +1,10 @@
namespace Ocelot.Tracing.Butterfly
{
using System;
using DependencyInjection;
using global::Butterfly.Client.AspNetCore;
using Logging;
using Microsoft.Extensions.DependencyInjection;
using System;
public static class OcelotBuilderExtensions
{

View File

@ -1,11 +1,8 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication;
using Ocelot.Configuration;
using Ocelot.Errors;
using Ocelot.Infrastructure.Extensions;
using Ocelot.Logging;
using Ocelot.Middleware;
using System.Threading.Tasks;
namespace Ocelot.Authentication.Middleware
{

View File

@ -9,4 +9,4 @@ namespace Ocelot.Authentication.Middleware
return builder.UseMiddleware<AuthenticationMiddleware>();
}
}
}
}

View File

@ -4,9 +4,9 @@ namespace Ocelot.Authorisation
{
public class ClaimValueNotAuthorisedError : Error
{
public ClaimValueNotAuthorisedError(string message)
public ClaimValueNotAuthorisedError(string message)
: base(message, OcelotErrorCode.ClaimValueNotAuthorisedError)
{
}
}
}
}

View File

@ -1,14 +1,10 @@
using System;
using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.Responses;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Text.RegularExpressions;
using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.Middleware;
using Ocelot.Responses;
using Ocelot.Values;
namespace Ocelot.Authorisation
{
using Infrastructure.Claims.Parser;
@ -26,7 +22,8 @@ namespace Ocelot.Authorisation
ClaimsPrincipal claimsPrincipal,
Dictionary<string, string> routeClaimsRequirement,
List<PlaceholderNameAndValue> urlPathPlaceholderNameAndValues
){
)
{
foreach (var required in routeClaimsRequirement)
{
var values = _claimsParser.GetValuesByClaimType(claimsPrincipal.Claims, required.Key);
@ -62,15 +59,14 @@ namespace Ocelot.Authorisation
if (matchingPlaceholders.Length == 0)
{
return new ErrorResponse<bool>(new ClaimValueNotAuthorisedError(
$"config error: requires variable claim value: {variableName} placeholders does not contain that variable: {string.Join(", ", urlPathPlaceholderNameAndValues.Select(p=>p.Name))}"));
$"config error: requires variable claim value: {variableName} placeholders does not contain that variable: {string.Join(", ", urlPathPlaceholderNameAndValues.Select(p => p.Name))}"));
}
else
{
return new ErrorResponse<bool>(new ClaimValueNotAuthorisedError(
$"config error: requires variable claim value: {required.Value} but placeholders are ambiguous: {string.Join(", ", urlPathPlaceholderNameAndValues.Where(p=>p.Name.Equals(variableName)).Select(p => p.Value))}"));
$"config error: requires variable claim value: {required.Value} but placeholders are ambiguous: {string.Join(", ", urlPathPlaceholderNameAndValues.Where(p => p.Name.Equals(variableName)).Select(p => p.Value))}"));
}
}
}
else
{
@ -92,4 +88,4 @@ namespace Ocelot.Authorisation
return new OkResponse<bool>(true);
}
}
}
}

View File

@ -1,9 +1,6 @@
using System.Security.Claims;
using Ocelot.Configuration;
using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.Responses;
using Ocelot.Values;
using System.Security.Claims;
namespace Ocelot.Authorisation
{
@ -17,4 +14,4 @@ namespace Ocelot.Authorisation
List<PlaceholderNameAndValue> urlPathPlaceholderNameAndValues
);
}
}
}

View File

@ -1,5 +1,5 @@
using System.Security.Claims;
using Ocelot.Responses;
using Ocelot.Responses;
using System.Security.Claims;
namespace Ocelot.Authorisation
{
@ -9,4 +9,4 @@ namespace Ocelot.Authorisation
{
Response<bool> Authorise(ClaimsPrincipal claimsPrincipal, List<string> routeAllowedScopes);
}
}
}

View File

@ -1,12 +1,10 @@
namespace Ocelot.Authorisation.Middleware
{
using System.Collections.Generic;
using System.Threading.Tasks;
using Errors;
using Ocelot.Middleware;
using Logging;
using Responses;
using Configuration;
using Logging;
using Ocelot.Middleware;
using Responses;
using System.Threading.Tasks;
public class AuthorisationMiddleware : OcelotMiddleware
{
@ -18,7 +16,7 @@
IClaimsAuthoriser claimsAuthoriser,
IScopesAuthoriser scopesAuthoriser,
IOcelotLoggerFactory loggerFactory)
:base(loggerFactory.CreateLogger<AuthorisationMiddleware>())
: base(loggerFactory.CreateLogger<AuthorisationMiddleware>())
{
_next = next;
_claimsAuthoriser = claimsAuthoriser;
@ -102,4 +100,4 @@
return reRoute.IsAuthorised;
}
}
}
}

View File

@ -9,4 +9,4 @@ namespace Ocelot.Authorisation.Middleware
return builder.UseMiddleware<AuthorisationMiddleware>();
}
}
}
}

View File

@ -4,9 +4,9 @@ namespace Ocelot.Authorisation
{
public class ScopeNotAuthorisedError : Error
{
public ScopeNotAuthorisedError(string message)
public ScopeNotAuthorisedError(string message)
: base(message, OcelotErrorCode.ScopeNotAuthorisedError)
{
}
}
}
}

View File

@ -1,7 +1,7 @@
using Ocelot.Responses;
using System.Collections.Generic;
using System.Security.Claims;
using System.Linq;
using System.Security.Claims;
namespace Ocelot.Authorisation
{

View File

@ -4,9 +4,9 @@ namespace Ocelot.Authorisation
{
public class UnauthorisedError : Error
{
public UnauthorisedError(string message)
public UnauthorisedError(string message)
: base(message, OcelotErrorCode.UnauthorizedError)
{
}
}
}
}

View File

@ -4,9 +4,9 @@ namespace Ocelot.Authorisation
{
public class UserDoesNotHaveClaimError : Error
{
public UserDoesNotHaveClaimError(string message)
public UserDoesNotHaveClaimError(string message)
: base(message, OcelotErrorCode.UserDoesNotHaveClaimError)
{
}
}
}
}

View File

@ -1,13 +1,17 @@
using System.Text;
using Ocelot.Middleware;
using System.Text;
using System.Threading.Tasks;
using Ocelot.Middleware;
namespace Ocelot.Cache {
public class CacheKeyGenerator : ICacheKeyGenerator {
public string GenerateRequestCacheKey(DownstreamContext context) {
namespace Ocelot.Cache
{
public class CacheKeyGenerator : ICacheKeyGenerator
{
public string GenerateRequestCacheKey(DownstreamContext context)
{
string hashedContent = null;
StringBuilder downStreamUrlKeyBuilder = new StringBuilder($"{context.DownstreamRequest.Method}-{context.DownstreamRequest.OriginalString}");
if (context.DownstreamRequest.Content != null) {
if (context.DownstreamRequest.Content != null)
{
string requestContentString = Task.Run(async () => await context.DownstreamRequest.Content.ReadAsStringAsync()).Result;
downStreamUrlKeyBuilder.Append(requestContentString);
}

View File

@ -2,7 +2,7 @@
{
using System;
class CacheObject<T>
internal class CacheObject<T>
{
public CacheObject(T value, DateTime expires)
{

View File

@ -27,7 +27,7 @@ namespace Ocelot.Cache
public Dictionary<string, IEnumerable<string>> ContentHeaders { get; private set; }
public string Body { get; private set; }
public string ReasonPhrase { get; private set; }
}
}

View File

@ -1,7 +1,9 @@
using Ocelot.Middleware;
namespace Ocelot.Cache {
public interface ICacheKeyGenerator {
namespace Ocelot.Cache
{
public interface ICacheKeyGenerator
{
string GenerateRequestCacheKey(DownstreamContext context);
}
}

View File

@ -5,8 +5,11 @@ namespace Ocelot.Cache
public interface IOcelotCache<T>
{
void Add(string key, T value, TimeSpan ttl, string region);
T Get(string key, string region);
void ClearRegion(string region);
void AddAndDelete(string key, T value, TimeSpan ttl, string region);
}
}

View File

@ -35,7 +35,7 @@
}
else
{
_regions.Add(region, new List<string>{ key });
_regions.Add(region, new List<string> { key });
}
}

View File

@ -1,20 +1,25 @@
using System.Security.Cryptography;
using System.Text;
namespace Ocelot.Cache {
public static class MD5Helper {
public static string GenerateMd5(byte[] contentBytes) {
namespace Ocelot.Cache
{
public static class MD5Helper
{
public static string GenerateMd5(byte[] contentBytes)
{
MD5 md5 = MD5.Create();
byte[] hash = md5.ComputeHash(contentBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++) {
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
public static string GenerateMd5(string contentString) {
public static string GenerateMd5(string contentString)
{
byte[] contentBytes = Encoding.Unicode.GetBytes(contentString);
return GenerateMd5(contentBytes);
}

View File

@ -1,13 +1,13 @@
namespace Ocelot.Cache.Middleware
{
using System;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Ocelot.Logging;
using Ocelot.Middleware;
using System;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
public class OutputCacheMiddleware : OcelotMiddleware
{
@ -19,7 +19,7 @@
IOcelotLoggerFactory loggerFactory,
IOcelotCache<CachedResponse> outputCache,
ICacheKeyGenerator cacheGeneratot)
:base(loggerFactory.CreateLogger<OutputCacheMiddleware>())
: base(loggerFactory.CreateLogger<OutputCacheMiddleware>())
{
_next = next;
_outputCache = outputCache;
@ -71,16 +71,18 @@
Logger.LogDebug($"finished response added to cache for {downstreamUrlKey}");
}
private void SetHttpResponseMessageThisRequest(DownstreamContext context,
private void SetHttpResponseMessageThisRequest(DownstreamContext context,
DownstreamResponse response)
{
context.DownstreamResponse = response;
}
private string GenerateRequestCacheKey(DownstreamContext context) {
private string GenerateRequestCacheKey(DownstreamContext context)
{
string hashedContent = null;
StringBuilder downStreamUrlKeyBuilder = new StringBuilder($"{context.DownstreamRequest.Method}-{context.DownstreamRequest.OriginalString}");
if(context.DownstreamRequest.Content != null) {
if (context.DownstreamRequest.Content != null)
{
string requestContentString = Task.Run(async () => await context.DownstreamRequest.Content?.ReadAsStringAsync()).Result;
downStreamUrlKeyBuilder.Append(requestContentString);
}

View File

@ -10,4 +10,4 @@ namespace Ocelot.Cache.Middleware
return builder.UseMiddleware<OutputCacheMiddleware>();
}
}
}
}

View File

@ -22,4 +22,4 @@ namespace Ocelot.Cache
return new NoContentResult();
}
}
}
}

View File

@ -1,6 +1,5 @@
using System.Linq;
using Ocelot.Configuration;
using Ocelot.Configuration.File;
using System.Linq;
namespace Ocelot.Cache
{
@ -8,16 +7,16 @@ namespace Ocelot.Cache
{
public string Create(FileReRoute reRoute)
{
if(!string.IsNullOrEmpty(reRoute?.FileCacheOptions?.Region))
if (!string.IsNullOrEmpty(reRoute?.FileCacheOptions?.Region))
{
return reRoute?.FileCacheOptions?.Region;
}
var methods = string.Join("", reRoute.UpstreamHttpMethod.Select(m => m));
var region = $"{methods}{reRoute.UpstreamPathTemplate.Replace("/", "")}";
var region = $"{methods}{reRoute.UpstreamPathTemplate.Replace("/", "")}";
return region;
}
}
}
}

View File

@ -11,4 +11,4 @@ namespace Ocelot.Cache
public List<string> Value { get; }
}
}
}

View File

@ -1,10 +1,10 @@
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http;
using Ocelot.Configuration;
using Ocelot.Infrastructure.Claims.Parser;
using Ocelot.Responses;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
namespace Ocelot.Claims
{

View File

@ -1,7 +1,7 @@
using System.Collections.Generic;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http;
using Ocelot.Configuration;
using Ocelot.Responses;
using System.Collections.Generic;
namespace Ocelot.Claims
{
@ -10,4 +10,4 @@ namespace Ocelot.Claims
Response SetClaimsOnContext(List<ClaimToThing> claimsToThings,
HttpContext context);
}
}
}

View File

@ -1,10 +1,7 @@
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Ocelot.DownstreamRouteFinder.Middleware;
using Ocelot.Infrastructure.RequestData;
using Ocelot.Logging;
using Ocelot.Logging;
using Ocelot.Middleware;
using System.Linq;
using System.Threading.Tasks;
namespace Ocelot.Claims.Middleware
{
@ -13,10 +10,10 @@ namespace Ocelot.Claims.Middleware
private readonly OcelotRequestDelegate _next;
private readonly IAddClaimsToRequest _addClaimsToRequest;
public ClaimsToClaimsMiddleware(OcelotRequestDelegate next,
public ClaimsToClaimsMiddleware(OcelotRequestDelegate next,
IOcelotLoggerFactory loggerFactory,
IAddClaimsToRequest addClaimsToRequest)
:base(loggerFactory.CreateLogger<ClaimsToClaimsMiddleware>())
IAddClaimsToRequest addClaimsToRequest)
: base(loggerFactory.CreateLogger<ClaimsToClaimsMiddleware>())
{
_next = next;
_addClaimsToRequest = addClaimsToRequest;

View File

@ -13,4 +13,4 @@ namespace Ocelot.Configuration
public List<string> AllowedScopes { get; private set; }
public string AuthenticationProviderKey { get; private set; }
}
}
}

View File

@ -1,8 +1,8 @@
using System.Collections.Generic;
using System.Net.Http;
using Ocelot.Values;
using System.Linq;
using Ocelot.Configuration.Creator;
using Ocelot.Values;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
namespace Ocelot.Configuration.Builder
{
@ -39,6 +39,7 @@ namespace Ocelot.Configuration.Builder
private List<AddHeader> _addHeadersToUpstream;
private bool _dangerousAcceptAnyServerCertificateValidator;
private SecurityOptions _securityOptions;
public DownstreamReRouteBuilder()
{
_downstreamAddresses = new List<DownstreamHostAndPort>();
@ -55,7 +56,7 @@ namespace Ocelot.Configuration.Builder
public DownstreamReRouteBuilder WithLoadBalancerOptions(LoadBalancerOptions loadBalancerOptions)
{
_loadBalancerOptions = loadBalancerOptions;
_loadBalancerOptions = loadBalancerOptions;
return this;
}
@ -142,7 +143,7 @@ namespace Ocelot.Configuration.Builder
_qosOptions = input;
return this;
}
public DownstreamReRouteBuilder WithLoadBalancerKey(string loadBalancerKey)
{
_loadBalancerKey = loadBalancerKey;
@ -239,26 +240,26 @@ namespace Ocelot.Configuration.Builder
_key,
_upstreamTemplatePattern,
_upstreamHeaderFindAndReplace,
_downstreamHeaderFindAndReplace,
_downstreamHeaderFindAndReplace,
_downstreamAddresses,
_serviceName,
_httpHandlerOptions,
_useServiceDiscovery,
_enableRateLimiting,
_serviceName,
_httpHandlerOptions,
_useServiceDiscovery,
_enableRateLimiting,
_qosOptions,
_downstreamScheme,
_requestIdHeaderKey,
_isCached,
_fileCacheOptions,
_loadBalancerOptions,
_downstreamScheme,
_requestIdHeaderKey,
_isCached,
_fileCacheOptions,
_loadBalancerOptions,
_rateLimitOptions,
_routeClaimRequirement,
_claimToQueries,
_claimsToHeaders,
_routeClaimRequirement,
_claimToQueries,
_claimsToHeaders,
_claimToClaims,
_isAuthenticated,
_isAuthorised,
_authenticationOptions,
_isAuthenticated,
_isAuthorised,
_authenticationOptions,
new DownstreamPathTemplate(_downstreamPathTemplate),
_loadBalancerKey,
_delegatingHandlers,

View File

@ -39,4 +39,4 @@
return new QoSOptions(_exceptionsAllowedBeforeBreaking, _durationOfBreak, _timeoutValue, _key);
}
}
}
}

View File

@ -63,9 +63,9 @@ namespace Ocelot.Configuration.Builder
public RateLimitOptions Build()
{
return new RateLimitOptions(_enableRateLimiting, _clientIdHeader, _clientWhitelist,
_disableRateLimitHeaders, _quotaExceededMessage, _rateLimitCounterPrefix,
return new RateLimitOptions(_enableRateLimiting, _clientIdHeader, _clientWhitelist,
_disableRateLimitHeaders, _quotaExceededMessage, _rateLimitCounterPrefix,
_rateLimitRule, _httpStatusCode);
}
}
}
}

View File

@ -1,10 +1,10 @@
namespace Ocelot.Configuration.Builder
{
using System.Collections.Generic;
using System.Net.Http;
using Ocelot.Values;
using System.Linq;
using Ocelot.Configuration.File;
using Ocelot.Values;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
public class ReRouteBuilder
{
@ -68,11 +68,11 @@
return new ReRoute(
_downstreamReRoutes,
_downstreamReRoutesConfig,
_upstreamHttpMethod,
_upstreamTemplatePattern,
_upstreamHttpMethod,
_upstreamTemplatePattern,
_upstreamHost,
_aggregator
);
}
}
}
}

View File

@ -12,4 +12,4 @@
public string Region { get; private set; }
}
}
}

View File

@ -15,4 +15,4 @@
public string Delimiter { get; private set; }
public int Index { get; private set; }
}
}
}

View File

@ -1,9 +1,9 @@
namespace Ocelot.Configuration.Creator
{
using System.Collections.Generic;
using System.Linq;
using Builder;
using File;
using System.Collections.Generic;
using System.Linq;
public class AggregatesCreator : IAggregatesCreator
{

View File

@ -7,6 +7,6 @@ namespace Ocelot.Configuration.Creator
public AuthenticationOptions Create(FileReRoute reRoute)
{
return new AuthenticationOptions(reRoute.AuthenticationOptions.AllowedScopes, reRoute.AuthenticationOptions.AuthenticationProviderKey);
}
}
}
}
}

View File

@ -1,6 +1,6 @@
using System.Collections.Generic;
using Ocelot.Configuration.Parser;
using Ocelot.Logging;
using System.Collections.Generic;
namespace Ocelot.Configuration.Creator
{
@ -14,9 +14,9 @@ namespace Ocelot.Configuration.Creator
{
_logger = loggerFactory.CreateLogger<ClaimsToThingCreator>();
_claimToThingConfigParser = claimToThingConfigurationParser;
}
public List<ClaimToThing> Create(Dictionary<string,string> inputToBeParsed)
}
public List<ClaimToThing> Create(Dictionary<string, string> inputToBeParsed)
{
var claimsToThings = new List<ClaimToThing>();
@ -37,4 +37,4 @@ namespace Ocelot.Configuration.Creator
return claimsToThings;
}
}
}
}

View File

@ -1,10 +1,10 @@
namespace Ocelot.Configuration.Creator
{
using DependencyInjection;
using File;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using File;
using DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
public class ConfigurationCreator : IConfigurationCreator
{

View File

@ -1,6 +1,6 @@
using Ocelot.Configuration.File;
using System.Collections.Generic;
using System.Linq;
using Ocelot.Configuration.File;
namespace Ocelot.Configuration.Creator
{
@ -11,4 +11,4 @@ namespace Ocelot.Configuration.Creator
return reRoute.DownstreamHostAndPorts.Select(hostAndPort => new DownstreamHostAndPort(hostAndPort.Host, hostAndPort.Port)).ToList();
}
}
}
}

View File

@ -1,9 +1,9 @@
namespace Ocelot.Configuration.Creator
{
using System.Collections.Generic;
using System.Linq;
using Builder;
using File;
using System.Collections.Generic;
using System.Linq;
public class DynamicsCreator : IDynamicsCreator
{

View File

@ -1,10 +1,10 @@
namespace Ocelot.Configuration.Creator
{
using File;
using Responses;
using System.Linq;
using System.Threading.Tasks;
using File;
using Validator;
using Responses;
public class FileInternalConfigurationCreator : IInternalConfigurationCreator
{

View File

@ -1,11 +1,9 @@
using System;
using System.Collections.Generic;
using Ocelot.Configuration.File;
using Ocelot.Infrastructure;
using Ocelot.Infrastructure.Extensions;
using Ocelot.Logging;
using Ocelot.Middleware;
using Ocelot.Responses;
using System.Collections.Generic;
namespace Ocelot.Configuration.Creator
{
@ -25,7 +23,7 @@ namespace Ocelot.Configuration.Creator
var upstream = new List<HeaderFindAndReplace>();
var addHeadersToUpstream = new List<AddHeader>();
foreach(var input in fileReRoute.UpstreamHeaderTransform)
foreach (var input in fileReRoute.UpstreamHeaderTransform)
{
if (input.Value.Contains(","))
{
@ -46,14 +44,14 @@ namespace Ocelot.Configuration.Creator
}
var downstream = new List<HeaderFindAndReplace>();
var addHeadersToDownstream = new List<AddHeader>();
foreach(var input in fileReRoute.DownstreamHeaderTransform)
var addHeadersToDownstream = new List<AddHeader>();
foreach (var input in fileReRoute.DownstreamHeaderTransform)
{
if(input.Value.Contains(","))
if (input.Value.Contains(","))
{
var hAndr = Map(input);
if(!hAndr.IsError)
if (!hAndr.IsError)
{
downstream.Add(hAndr.Data);
}
@ -66,27 +64,27 @@ namespace Ocelot.Configuration.Creator
{
addHeadersToDownstream.Add(new AddHeader(input.Key, input.Value));
}
}
}
return new HeaderTransformations(upstream, downstream, addHeadersToDownstream, addHeadersToUpstream);
}
private Response<HeaderFindAndReplace> Map(KeyValuePair<string,string> input)
private Response<HeaderFindAndReplace> Map(KeyValuePair<string, string> input)
{
var findAndReplace = input.Value.Split(",");
var replace = findAndReplace[1].TrimStart();
var startOfPlaceholder = replace.IndexOf("{");
if(startOfPlaceholder > -1)
if (startOfPlaceholder > -1)
{
var endOfPlaceholder = replace.IndexOf("}", startOfPlaceholder);
var endOfPlaceholder = replace.IndexOf("}", startOfPlaceholder);
var placeholder = replace.Substring(startOfPlaceholder, startOfPlaceholder + (endOfPlaceholder + 1));
var value = _placeholders.Get(placeholder);
if(value.IsError)
if (value.IsError)
{
return new ErrorResponse<HeaderFindAndReplace>(value.Errors);
}
@ -94,9 +92,9 @@ namespace Ocelot.Configuration.Creator
replace = replace.Replace(placeholder, value.Data);
}
var hAndr = new HeaderFindAndReplace(input.Key, findAndReplace[0], replace, 0);
var hAndr = new HeaderFindAndReplace(input.Key, findAndReplace[0], replace, 0);
return new OkResponse<HeaderFindAndReplace>(hAndr);
}
}
}
}

View File

@ -5,7 +5,7 @@ namespace Ocelot.Configuration.Creator
public class HeaderTransformations
{
public HeaderTransformations(
List<HeaderFindAndReplace> upstream,
List<HeaderFindAndReplace> upstream,
List<HeaderFindAndReplace> downstream,
List<AddHeader> addHeaderToDownstream,
List<AddHeader> addHeaderToUpstream)
@ -23,4 +23,4 @@ namespace Ocelot.Configuration.Creator
public List<AddHeader> AddHeadersToDownstream { get; }
public List<AddHeader> AddHeadersToUpstream { get; }
}
}
}

View File

@ -1,9 +1,9 @@
namespace Ocelot.Configuration.Creator
{
using System;
using Logging;
using Microsoft.Extensions.DependencyInjection;
using Ocelot.Configuration.File;
using System;
public class HttpHandlerOptionsCreator : IHttpHandlerOptionsCreator
{
@ -16,7 +16,7 @@
public HttpHandlerOptions Create(FileHttpHandlerOptions options)
{
var useTracing = _tracer!= null && options.UseTracing;
var useTracing = _tracer != null && options.UseTracing;
return new HttpHandlerOptions(options.AllowAutoRedirect,
options.UseCookieContainer, useTracing, options.UseProxy);

View File

@ -1,5 +1,5 @@
using System.Collections.Generic;
using Ocelot.Configuration.File;
using System.Collections.Generic;
namespace Ocelot.Configuration.Creator
{

View File

@ -1,4 +1,3 @@
using System.Collections.Generic;
using Ocelot.Configuration.File;
namespace Ocelot.Configuration.Creator
@ -7,4 +6,4 @@ namespace Ocelot.Configuration.Creator
{
AuthenticationOptions Create(FileReRoute reRoute);
}
}
}

View File

@ -4,6 +4,6 @@ namespace Ocelot.Configuration.Creator
{
public interface IClaimsToThingCreator
{
List<ClaimToThing> Create(Dictionary<string,string> thingsBeingAdded);
List<ClaimToThing> Create(Dictionary<string, string> thingsBeingAdded);
}
}
}

View File

@ -1,5 +1,5 @@
using System.Collections.Generic;
using Ocelot.Configuration.File;
using System.Collections.Generic;
namespace Ocelot.Configuration.Creator
{

View File

@ -1,5 +1,5 @@
using System.Collections.Generic;
using Ocelot.Configuration.File;
using System.Collections.Generic;
namespace Ocelot.Configuration.Creator
{
@ -7,4 +7,4 @@ namespace Ocelot.Configuration.Creator
{
List<DownstreamHostAndPort> Create(FileReRoute reRoute);
}
}
}

View File

@ -1,5 +1,5 @@
using System.Collections.Generic;
using Ocelot.Configuration.File;
using System.Collections.Generic;
namespace Ocelot.Configuration.Creator
{

View File

@ -1,4 +1,3 @@
using System.Collections.Generic;
using Ocelot.Configuration.File;
namespace Ocelot.Configuration.Creator
@ -7,4 +6,4 @@ namespace Ocelot.Configuration.Creator
{
HeaderTransformations Create(FileReRoute fileReRoute);
}
}
}

View File

@ -9,4 +9,4 @@ namespace Ocelot.Configuration.Creator
{
HttpHandlerOptions Create(FileHttpHandlerOptions fileReRoute);
}
}
}

View File

@ -1,6 +1,6 @@
using System.Threading.Tasks;
using Ocelot.Configuration.File;
using Ocelot.Responses;
using System.Threading.Tasks;
namespace Ocelot.Configuration.Creator
{

View File

@ -1,12 +1,14 @@
using System.Collections.Generic;
using Ocelot.Configuration.File;
using System.Collections.Generic;
namespace Ocelot.Configuration.Creator
{
public interface IQoSOptionsCreator
{
QoSOptions Create(FileQoSOptions options);
QoSOptions Create(FileQoSOptions options, string pathTemplate, List<string> httpMethods);
QoSOptions Create(QoSOptions options, string pathTemplate, List<string> httpMethods);
}
}

View File

@ -6,4 +6,4 @@ namespace Ocelot.Configuration.Creator
{
ReRouteOptions Create(FileReRoute fileReRoute);
}
}
}

View File

@ -1,5 +1,5 @@
using System.Collections.Generic;
using Ocelot.Configuration.File;
using System.Collections.Generic;
namespace Ocelot.Configuration.Creator
{

View File

@ -1,7 +1,4 @@
using Ocelot.Configuration.File;
using System;
using System.Collections.Generic;
using System.Text;
namespace Ocelot.Configuration.Creator
{

View File

@ -7,4 +7,4 @@ namespace Ocelot.Configuration.Creator
{
UpstreamPathTemplate Create(IReRoute reRoute);
}
}
}

View File

@ -1,6 +1,6 @@
using System.Linq;
using Ocelot.Configuration.File;
using Ocelot.LoadBalancer.LoadBalancers;
using System.Linq;
namespace Ocelot.Configuration.Creator
{
@ -12,14 +12,14 @@ namespace Ocelot.Configuration.Creator
{
return $"{nameof(CookieStickySessions)}:{fileReRoute.LoadBalancerOptions.Key}";
}
return $"{fileReRoute.UpstreamPathTemplate}|{string.Join(",", fileReRoute.UpstreamHttpMethod)}|{string.Join(",", fileReRoute.DownstreamHostAndPorts.Select(x => $"{x.Host}:{x.Port}"))}";
}
private bool IsStickySession(FileReRoute fileReRoute)
{
if (!string.IsNullOrEmpty(fileReRoute.LoadBalancerOptions.Type)
&& !string.IsNullOrEmpty(fileReRoute.LoadBalancerOptions.Key)
if (!string.IsNullOrEmpty(fileReRoute.LoadBalancerOptions.Type)
&& !string.IsNullOrEmpty(fileReRoute.LoadBalancerOptions.Key)
&& fileReRoute.LoadBalancerOptions.Type == nameof(CookieStickySessions))
{
return true;

View File

@ -20,7 +20,7 @@ namespace Ocelot.Configuration.Creator
.WithRateLimiting(enableRateLimiting)
.WithUseServiceDiscovery(useServiceDiscovery)
.Build();
return options;
}

View File

@ -1,10 +1,10 @@
namespace Ocelot.Configuration.Creator
{
using Builder;
using Cache;
using File;
using System.Collections.Generic;
using System.Linq;
using Cache;
using Builder;
using File;
public class ReRoutesCreator : IReRoutesCreator
{

View File

@ -6,13 +6,13 @@ namespace Ocelot.Configuration.Creator
{
public string Create(FileReRoute fileReRoute, FileGlobalConfiguration globalConfiguration)
{
var reRouteId = !string.IsNullOrEmpty(fileReRoute.RequestIdKey);
var requestIdKey = reRouteId
? fileReRoute.RequestIdKey
: globalConfiguration.RequestIdKey;
return requestIdKey;
var reRouteId = !string.IsNullOrEmpty(fileReRoute.RequestIdKey);
var requestIdKey = reRouteId
? fileReRoute.RequestIdKey
: globalConfiguration.RequestIdKey;
return requestIdKey;
}
}
}
}

View File

@ -1,7 +1,4 @@
using System;
using System.Collections.Generic;
using System.Text;
using Ocelot.Configuration.File;
using Ocelot.Configuration.File;
namespace Ocelot.Configuration.Creator
{

View File

@ -9,8 +9,8 @@ namespace Ocelot.Configuration.Creator
{
var port = globalConfiguration?.ServiceDiscoveryProvider?.Port ?? 0;
var host = globalConfiguration?.ServiceDiscoveryProvider?.Host ?? "localhost";
var type = !string.IsNullOrEmpty(globalConfiguration?.ServiceDiscoveryProvider?.Type)
? globalConfiguration?.ServiceDiscoveryProvider?.Type
var type = !string.IsNullOrEmpty(globalConfiguration?.ServiceDiscoveryProvider?.Type)
? globalConfiguration?.ServiceDiscoveryProvider?.Type
: "consul";
var pollingInterval = globalConfiguration?.ServiceDiscoveryProvider?.PollingInterval ?? 0;
var k8snamespace = globalConfiguration?.ServiceDiscoveryProvider?.Namespace ?? string.Empty;

View File

@ -1,6 +1,6 @@
using System.Collections.Generic;
using Ocelot.Configuration.File;
using Ocelot.Values;
using System.Collections.Generic;
namespace Ocelot.Configuration.Creator
{
@ -29,7 +29,7 @@ namespace Ocelot.Configuration.Creator
placeholders.Add(placeHolderName);
//hack to handle /{url} case
if(ForwardSlashAndOnePlaceHolder(upstreamTemplate, placeholders, postitionOfPlaceHolderClosingBracket))
if (ForwardSlashAndOnePlaceHolder(upstreamTemplate, placeholders, postitionOfPlaceHolderClosingBracket))
{
return new UpstreamPathTemplate(RegExForwardSlashAndOnePlaceHolder, 0, false, reRoute.UpstreamPathTemplate);
}
@ -48,11 +48,11 @@ namespace Ocelot.Configuration.Creator
{
var indexOfPlaceholder = upstreamTemplate.IndexOf(placeholders[i]);
var indexOfNextForwardSlash = upstreamTemplate.IndexOf("/", indexOfPlaceholder);
if(indexOfNextForwardSlash < indexOfPlaceholder || (containsQueryString && upstreamTemplate.IndexOf("?") < upstreamTemplate.IndexOf(placeholders[i])))
if (indexOfNextForwardSlash < indexOfPlaceholder || (containsQueryString && upstreamTemplate.IndexOf("?") < upstreamTemplate.IndexOf(placeholders[i])))
{
upstreamTemplate = upstreamTemplate.Replace(placeholders[i], RegExMatchOneOrMoreOfEverything);
}
else
}
else
{
upstreamTemplate = upstreamTemplate.Replace(placeholders[i], RegExMatchOneOrMoreOfEverythingUntilNextForwardSlash);
}
@ -63,13 +63,13 @@ namespace Ocelot.Configuration.Creator
return new UpstreamPathTemplate(RegExForwardSlashOnly, reRoute.Priority, containsQueryString, reRoute.UpstreamPathTemplate);
}
if(upstreamTemplate.EndsWith("/"))
if (upstreamTemplate.EndsWith("/"))
{
upstreamTemplate = upstreamTemplate.Remove(upstreamTemplate.Length -1, 1) + "(/|)";
upstreamTemplate = upstreamTemplate.Remove(upstreamTemplate.Length - 1, 1) + "(/|)";
}
var route = reRoute.ReRouteIsCaseSensitive
? $"^{upstreamTemplate}{RegExMatchEndString}"
var route = reRoute.ReRouteIsCaseSensitive
? $"^{upstreamTemplate}{RegExMatchEndString}"
: $"^{RegExIgnoreCase}{upstreamTemplate}{RegExMatchEndString}";
return new UpstreamPathTemplate(route, reRoute.Priority, containsQueryString, reRoute.UpstreamPathTemplate);
@ -77,8 +77,8 @@ namespace Ocelot.Configuration.Creator
private bool ForwardSlashAndOnePlaceHolder(string upstreamTemplate, List<string> placeholders, int postitionOfPlaceHolderClosingBracket)
{
if(upstreamTemplate.Substring(0, 2) == "/{" && placeholders.Count == 1 && upstreamTemplate.Length == postitionOfPlaceHolderClosingBracket + 1)
{
if (upstreamTemplate.Substring(0, 2) == "/{" && placeholders.Count == 1 && upstreamTemplate.Length == postitionOfPlaceHolderClosingBracket + 1)
{
return true;
}

View File

@ -11,4 +11,4 @@
public string Host { get; private set; }
public int Port { get; private set; }
}
}
}

View File

@ -1,7 +1,7 @@
namespace Ocelot.Configuration
{
using System.Collections.Generic;
using Creator;
using System.Collections.Generic;
using Values;
public class DownstreamReRoute

Some files were not shown because too many files have changed in this diff Show More