public void CreateScope_ExpectCorrelationContextPresent() { // arrange var httpContext = new DefaultHttpContext(); var correlationId = CorrelationId.FromString("123"); var correlationContext = new RequestCorrelationContext(correlationId, HttpHeaders.CorrelationId); _factory .Setup(f => f.CreateContext(It.IsAny <HttpContext>())) .Returns(correlationContext); // act var container = new CorrelationContextContainer(_factory.Object); using var scope = container.CreateScope(httpContext); // assert // -> container content Assert.Equal(correlationContext, container.CorrelationContext); Assert.Equal(correlationId, container.CorrelationContext.CorrelationId); // -> scope content Assert.Equal(correlationContext, scope.CorrelationContext); Assert.Equal(correlationId, scope.CorrelationContext.CorrelationId); }
private void spfInstance_SendingRequest(object sender, System.Data.Services.Client.SendingRequestEventArgs e) { // Set Claim-based auth header var bearerToken = AuthenticationHelper.GetPrincipalBearerToken(); // TODO: We should fail here when I remove the basic auth fallback if (!string.IsNullOrWhiteSpace(bearerToken)) { e.RequestHeaders.Add("Authorization", "Bearer " + bearerToken); } e.RequestHeaders.Add("Accept-Language", System.Threading.Thread.CurrentThread.CurrentUICulture.Name); // Set common headers, including x-ms-principal-id RequestCorrelationContext current = RequestCorrelationContext.Current; current.Transfer(e.RequestHeaders); }
public async Task Emits_WhenNoEmit_ExpectNoCorrelationIdEmitted() { // arrange var incomingHeader = HttpHeaders.AspNetRequestId; var options = CreateEmitOptions(PropagationSettings.NoPropagation); var httpContext = new DefaultHttpContext(); var correlationContext = new RequestCorrelationContext( CorrelationId.FromString("123"), incomingHeader); // act var emitter = new CorrelationEmitter(options, _logger); await emitter .Emit(httpContext, correlationContext) .ConfigureAwait(false); // assert Assert.DoesNotContain(incomingHeader, httpContext.Response.Headers); }
public async Task Emits_WhenKeepingIncomingHeader_ExpectCorrelationIdEmittedWithIncomingHeader() { // arrange var headerName = HttpHeaders.CorrelationId; var options = CreateEmitOptions(PropagationSettings.KeepIncomingHeaderName()); var httpContext = new DefaultHttpContext(); var correlationContext = new RequestCorrelationContext( CorrelationId.FromString("123"), headerName); // act var emitter = new CorrelationEmitter(options, _logger); await emitter .Emit(httpContext, correlationContext) .ConfigureAwait(false); // assert Assert.Contains(headerName, httpContext.Response.Headers); Assert.Equal("123", httpContext.Response.Headers[headerName]); }
public async Task Emits_WhenEmmitingUsingCustomHeader_ExpectCorrelationIdEmittedWithPredefinedHeader() { // arrange var incomingHeader = HttpHeaders.AspNetRequestId; var outgoingHeader = "X-Le-Custom-Request-Id"; var options = CreateEmitOptions(PropagationSettings.PropagateAs(outgoingHeader)); var httpContext = new DefaultHttpContext(); var correlationContext = new RequestCorrelationContext( CorrelationId.FromString("123"), incomingHeader); // act var emitter = new CorrelationEmitter(options, _logger); await emitter .Emit(httpContext, correlationContext) .ConfigureAwait(false); // assert Assert.Contains(outgoingHeader, httpContext.Response.Headers); Assert.Equal("123", httpContext.Response.Headers[outgoingHeader]); }