ImpersonatedAuthClient class

An authenticated HTTP client that impersonates a service account.

This client allows a source credential to act as a different service account through Google's IAM Credentials API. It supports:

  • Auto-refreshing access tokens
  • Signing data as the impersonated account
  • Delegation chains for multi-hop impersonation
  • Custom universe domains
Implemented types
Available extensions

Constructors

ImpersonatedAuthClient({required AuthClient sourceClient, required String targetServiceAccount, required List<String> targetScopes, List<String>? delegates, String universeDomain = defaultUniverseDomain, Duration lifetime = const Duration(hours: 1)})
Creates an ImpersonatedAuthClient instance.

Properties

baseClient → Client
finalinherited
closeUnderlyingClient bool
finalinherited
credentials AccessCredentials
The credentials currently used for making HTTP requests.
no setteroverride
credentialUpdates Stream<AccessCredentials>
A broadcast stream of AccessCredentials.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
serviceAccountCredentials ServiceAccountCredentials?
The service account credentials used to create this client, if any.
no setteroverride
targetServiceAccount String
The email of the target service account being impersonated.
no setter

Methods

close() → void
Closes the client and cleans up any resources associated with it.
inherited
delete(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP DELETE request with the given headers to the given URL.
inherited
generateAccessToken() Future<AccessCredentials>
Generates a new access token for the impersonated service account.
get(Uri url, {Map<String, String>? headers}) Future<Response>
Sends an HTTP GET request with the given headers to the given URL.
inherited
Sends an HTTP HEAD request with the given headers to the given URL.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyAboutNewCredentials(AccessCredentials credentials) → void
inherited
patch(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP PATCH request with the given headers and body to the given URL.
inherited
post(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP POST request with the given headers and body to the given URL.
inherited
put(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP PUT request with the given headers and body to the given URL.
inherited
read(Uri url, {Map<String, String>? headers}) Future<String>
Sends an HTTP GET request with the given headers to the given URL and returns a Future that completes to the body of the response as a String.
inherited
readBytes(Uri url, {Map<String, String>? headers}) Future<Uint8List>
Sends an HTTP GET request with the given headers to the given URL and returns a Future that completes to the body of the response as a list of bytes.
inherited
send(BaseRequest request) Future<StreamedResponse>
Sends an HTTP request and asynchronously returns the response.
sign(List<int> data) Future<String>
Signs the given data using the IAM Credentials API.
sign(List<int> data, {String? endpoint}) Future<String>

Available on AuthClient, provided by the AuthClientSigningExtension extension

Signs some bytes using the credentials from this auth client.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited