public async Task <HttpRequestMessage> Map(HttpContext context, ReRoute route) { var downstreamUri = route.GetDownstreamUri(context); var requestMessage = new HttpRequestMessage(route.DownstreamMethod, downstreamUri); requestMessage.Content = MapContent(context, route); foreach (var header in context.Request.Headers.Where(x => !x.Key.StartsWith("Content-"))) { requestMessage.Headers.Add(header.Key, header.Value.ToArray()); } var headerModifications = route.GetRequestHeaderModifications(); foreach (var headerAction in headerModifications) { headerAction(requestMessage.Headers); } // This could be also done in the startup in headerModifications, but I leave it here for clarity TokenBuilder tokenBuilder = TokenBuilder.Instance; string XCToken = await tokenBuilder.GetXCAccessToken(route.TokenUserId()); requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", XCToken); return(requestMessage); }
public async Task <HttpRequestMessage> Map(HttpContext context, ReRoute route) { var downstreamUri = route.GetDownstreamUri(context); var requestMessage = new HttpRequestMessage(route.DownstreamMethod, downstreamUri); requestMessage.Content = MapContent(context, route); foreach (var header in context.Request.Headers.Where(x => !x.Key.StartsWith("Content-"))) { requestMessage.Headers.Add(header.Key, header.Value.ToArray()); } var headerModifications = route.GetRequestHeaderModifications(); foreach (var headerAction in headerModifications) { headerAction(requestMessage.Headers); } return(requestMessage); }