public async Task ForwardToAsync(ServiceType serviceType, string path, bool allowAnonymous = false) { HttpContext context = _httpContextAccessor.HttpContext; string userId = _requestContextAccessor.Context.UserId; if (!allowAnonymous && userId == null) { context.Response.StatusCode = StatusCodes.Status401Unauthorized; return; } if (userId != null) { context.GetRouteData().Values.Add(nameof(userId), userId); } path = FillRouteValues(path, context.GetRouteData().Values); HttpRequestMessage fwRequest = BuildRequest(context.Request, path); HttpResponseMessage response; using (IServiceHttpClient client = await _httpClientFactory.CreateAsync(serviceType, userId, CancellationToken.None)) { response = await client.SendAsync(fwRequest, CancellationToken.None); } await WriteResponseAsync(response, context.Response); }
public HomeController(IServiceHttpClient httpClient) { _httpClient = httpClient; }
public InterestsService(HttpClient httpClient, IServiceHttpClient serviceClient, ILogger <InterestsService> logger) { _httpClient = httpClient; _serviceClient = serviceClient; _logger = logger; }