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); }
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); }
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); }
/// <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))); }