コード例 #1
0
        public ProxyConfigManager(
            ILogger <ProxyConfigManager> logger,
            IProxyConfigProvider provider,
            IClusterManager clusterManager,
            IRouteManager routeManager,
            IEnumerable <IProxyConfigFilter> filters,
            IConfigValidator configValidator,
            ProxyEndpointFactory proxyEndpointFactory,
            ITransformBuilder transformBuilder,
            IProxyHttpClientFactory httpClientFactory,
            IActiveHealthCheckMonitor activeHealthCheckMonitor)
        {
            _logger                   = logger ?? throw new ArgumentNullException(nameof(logger));
            _provider                 = provider ?? throw new ArgumentNullException(nameof(provider));
            _clusterManager           = clusterManager ?? throw new ArgumentNullException(nameof(clusterManager));
            _routeManager             = routeManager ?? throw new ArgumentNullException(nameof(routeManager));
            _filters                  = filters ?? throw new ArgumentNullException(nameof(filters));
            _configValidator          = configValidator ?? throw new ArgumentNullException(nameof(configValidator));
            _proxyEndpointFactory     = proxyEndpointFactory ?? throw new ArgumentNullException(nameof(proxyEndpointFactory));
            _transformBuilder         = transformBuilder ?? throw new ArgumentNullException(nameof(transformBuilder));
            _httpClientFactory        = httpClientFactory ?? throw new ArgumentNullException(nameof(httpClientFactory));
            _activeHealthCheckMonitor = activeHealthCheckMonitor ?? throw new ArgumentNullException(nameof(activeHealthCheckMonitor));

            _conventions   = new List <Action <EndpointBuilder> >();
            DefaultBuilder = new ReverseProxyConventionBuilder(_conventions);

            _changeToken = new CancellationChangeToken(_cancellationTokenSource.Token);
        }
コード例 #2
0
        public void ReverseProxyConventionBuilder_ConfigureWithProxyAndCluster_Works()
        {
            var configured = false;

            var conventions = new List <Action <EndpointBuilder> >();
            var builder     = new ReverseProxyConventionBuilder(conventions);

            builder.ConfigureEndpoints((builder, proxy, cluster) =>
            {
                configured = true;
            });

            var proxyRoute      = new ProxyRoute();
            var cluster         = new Cluster();
            var endpointBuilder = CreateEndpointBuilder(proxyRoute, cluster);

            var action = Assert.Single(conventions);

            action(endpointBuilder);

            Assert.True(configured);
        }
コード例 #3
0
        public void ReverseProxyConventionBuilder_Configure_Works()
        {
            var configured = false;

            var conventions = new List <Action <EndpointBuilder> >();
            var builder     = new ReverseProxyConventionBuilder(conventions);

            builder.ConfigureEndpoints(builder =>
            {
                configured = true;
            });

            var routeConfig     = new RouteConfig();
            var cluster         = new ClusterConfig();
            var endpointBuilder = CreateEndpointBuilder(routeConfig, cluster);

            var action = Assert.Single(conventions);

            action(endpointBuilder);

            Assert.True(configured);
        }
コード例 #4
0
 /// <summary>
 /// Adds anti-forgery protection to YARP
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="requireAntiforgeryCheck"></param>
 /// <returns></returns>
 public static ReverseProxyConventionBuilder AsBffApiEndpoint(this ReverseProxyConventionBuilder builder,
                                                              bool requireAntiforgeryCheck = true)
 {
     return(builder.WithMetadata(new BffApiAttribute(requireAntiforgeryCheck)));
 }