public void AccessTokenWithHeaders_NoQuotaProject() { var token = new AccessTokenWithHeaders("FAKE_TOKEN"); Assert.Equal("FAKE_TOKEN", token.AccessToken); Assert.Empty(token.Headers); }
public void AccessTokenWithHeaders_WithQuotaProject() { var token = new AccessTokenWithHeaders("FAKE_TOKEN", "FAKE_QUOTA_PROJECT"); Assert.Equal("FAKE_TOKEN", token.AccessToken); Assert.Single(token.Headers); Assert.Contains("x-goog-user-project", token.Headers.Keys); var values = token.Headers["x-goog-user-project"]; Assert.Single(values); Assert.Contains("FAKE_QUOTA_PROJECT", values); }
/// <summary> /// Creates an <see cref="AsyncAuthInterceptor"/> that will obtain access token and associated information /// from any credential type that implements <see cref="ITokenAccessWithHeaders"/> /// </summary> /// <param name="credential">The credential to use to obtain access tokens.</param> /// <returns>The interceptor.</returns> public static AsyncAuthInterceptor FromCredential(ITokenAccessWithHeaders credential) { return(new AsyncAuthInterceptor(async(context, metadata) => { AccessTokenWithHeaders tokenAndHeaders = await credential.GetAccessTokenWithHeadersForRequestAsync(context.ServiceUrl, CancellationToken.None).ConfigureAwait(false); metadata.Add(CreateBearerTokenHeader(tokenAndHeaders.AccessToken)); foreach (var header in tokenAndHeaders.Headers) { foreach (var headerValue in header.Value) { metadata.Add(new Metadata.Entry(header.Key, headerValue)); } } })); }
public ExtraHeadersInterceptor(AccessTokenWithHeaders headers) => _headers = headers;
public ExtraHeadersInitializer(AccessTokenWithHeaders headers) =>