예제 #1
0
 public ProxyConfigLoader(
     ILogger <ProxyConfigLoader> logger,
     IClustersRepo clustersRepo,
     IRoutesRepo routesRepo,
     IReverseProxyConfigManager proxyManager,
     IOptionsMonitor <ProxyConfigOptions> proxyConfig)
 {
     _logger       = logger ?? throw new ArgumentNullException(nameof(logger));
     _clustersRepo = clustersRepo ?? throw new ArgumentNullException(nameof(clustersRepo));
     _routesRepo   = routesRepo ?? throw new ArgumentNullException(nameof(routesRepo));
     _proxyManager = proxyManager ?? throw new ArgumentNullException(nameof(proxyManager));
     _proxyConfig  = proxyConfig ?? throw new ArgumentNullException(nameof(proxyConfig));
 }
예제 #2
0
 public DynamicConfigBuilder(
     IEnumerable <IProxyConfigFilter> filters,
     IClustersRepo clustersRepo,
     IRoutesRepo routesRepo,
     IRouteValidator parsedRouteValidator,
     IEnumerable <ISessionAffinityProvider> sessionAffinityProviders,
     IEnumerable <IAffinityFailurePolicy> affinityFailurePolicies)
 {
     _filters                  = filters ?? throw new ArgumentNullException(nameof(filters));
     _clustersRepo             = clustersRepo ?? throw new ArgumentNullException(nameof(clustersRepo));
     _routesRepo               = routesRepo ?? throw new ArgumentNullException(nameof(routesRepo));
     _parsedRouteValidator     = parsedRouteValidator ?? throw new ArgumentNullException(nameof(parsedRouteValidator));
     _sessionAffinityProviders = sessionAffinityProviders?.ToProviderDictionary() ?? throw new ArgumentNullException(nameof(sessionAffinityProviders));
     _affinityFailurePolicies  = affinityFailurePolicies?.ToPolicyDictionary() ?? throw new ArgumentNullException(nameof(affinityFailurePolicies));
 }
        private IDynamicConfigBuilder CreateConfigBuilder(IClustersRepo clusters, IRoutesRepo routes, Action <IReverseProxyBuilder> configProxy = null)
        {
            var servicesBuilder = new ServiceCollection();

            servicesBuilder.AddOptions();
            var proxyBuilder = servicesBuilder.AddReverseProxy();

            configProxy?.Invoke(proxyBuilder);
            servicesBuilder.AddSingleton(clusters);
            servicesBuilder.AddSingleton(routes);
            servicesBuilder.AddSingleton <TestService>();
            servicesBuilder.AddDataProtection();
            servicesBuilder.AddLogging();
            servicesBuilder.AddRouting();
            var services = servicesBuilder.BuildServiceProvider();

            return(services.GetRequiredService <IDynamicConfigBuilder>());
        }