package internal
import "cloud.google.com/go/auth/internal"
Index ¶
- Constants
- func DefaultClient() *http.Client
- func DoRequest(client *http.Client, req *http.Request) (*http.Response, []byte, error)
- func FormatIAMServiceAccountResource(name string) string
- func GetProjectID(b []byte, override string) string
- func GetQuotaProject(b []byte, override string) string
- func ParseKey(key []byte) (crypto.Signer, error)
- func ReadAll(r io.Reader) ([]byte, error)
- type ComputeUniverseDomainProvider
- type StaticProperty
- func StaticCredentialsProperty(s string) StaticProperty
- func (p StaticProperty) GetProperty(context.Context) (string, error)
- type TrustBoundaryData
Constants ¶
const ( // TokenTypeBearer is the auth header prefix for bearer tokens. TokenTypeBearer = "Bearer" // QuotaProjectEnvVar is the environment variable for setting the quota // project. QuotaProjectEnvVar = "GOOGLE_CLOUD_QUOTA_PROJECT" // UniverseDomainEnvVar is the environment variable for setting the default // service domain for a given Cloud universe. UniverseDomainEnvVar = "GOOGLE_CLOUD_UNIVERSE_DOMAIN" // DefaultUniverseDomain is the default value for universe domain. // Universe domain is the default service domain for a given Cloud universe. DefaultUniverseDomain = "googleapis.com" // TrustBoundaryNoOp is a constant indicating no trust boundary is enforced. TrustBoundaryNoOp = "0x0" // TrustBoundaryDataKey is the key used to store trust boundary data in a token's metadata. TrustBoundaryDataKey = "google.auth.trust_boundary_data" )
const Version = "0.20.0"
Version is the current tagged release of the library.
Functions ¶
func DefaultClient ¶
DefaultClient returns an http.Client with some defaults set. If the current http.DefaultTransport is a [clonableTransport], as is the case for an *http.Transport, the clone will be used. Otherwise the http.DefaultTransport is used directly.
func DoRequest ¶
DoRequest executes the provided req with the client. It reads the response body, closes it, and returns it.
func FormatIAMServiceAccountResource ¶
FormatIAMServiceAccountResource sets a service account name in an IAM resource name.
func GetProjectID ¶
GetProjectID retrieves project with precedence being: override, environment variable, creds json file.
func GetQuotaProject ¶
GetQuotaProject retrieves quota project with precedence being: override, environment variable, creds json file.
func ParseKey ¶
ParseKey converts the binary contents of a private key file to an crypto.Signer. It detects whether the private key is in a PEM container or not. If so, it extracts the the private key from PEM container before conversion. It only supports PEM containers with no passphrase.
func ReadAll ¶
ReadAll consumes the whole reader and safely reads the content of its body with some overflow protection.
Types ¶
type ComputeUniverseDomainProvider ¶
type ComputeUniverseDomainProvider struct {
MetadataClient *metadata.Client
// contains filtered or unexported fields
}
ComputeUniverseDomainProvider fetches the credentials universe domain from the google cloud metadata service.
func (*ComputeUniverseDomainProvider) GetProperty ¶
func (c *ComputeUniverseDomainProvider) GetProperty(ctx context.Context) (string, error)
GetProperty fetches the credentials universe domain from the google cloud metadata service.
type StaticProperty ¶
type StaticProperty string
StaticProperty always returns that value of the underlying string.
func StaticCredentialsProperty ¶
func StaticCredentialsProperty(s string) StaticProperty
StaticCredentialsProperty is a helper for creating static credentials properties.
func (StaticProperty) GetProperty ¶
func (p StaticProperty) GetProperty(context.Context) (string, error)
GetProperty loads the properly value provided the given context.
type TrustBoundaryData ¶
type TrustBoundaryData struct {
// Locations is the list of locations that the token is allowed to be used in.
Locations []string
// EncodedLocations represents the locations in an encoded format.
EncodedLocations string
}
TrustBoundaryData represents the trust boundary data associated with a token. It contains information about the regions or environments where the token is valid.
func NewNoOpTrustBoundaryData ¶
func NewNoOpTrustBoundaryData() *TrustBoundaryData
NewNoOpTrustBoundaryData returns a new TrustBoundaryData with no restrictions.
func NewTrustBoundaryData ¶
func NewTrustBoundaryData(locations []string, encodedLocations string) *TrustBoundaryData
NewTrustBoundaryData returns a new TrustBoundaryData with the specified locations and encoded locations.
func (TrustBoundaryData) TrustBoundaryHeader ¶
func (t TrustBoundaryData) TrustBoundaryHeader() (value string, present bool)
TrustBoundaryHeader returns the value for the x-allowed-locations header and a bool indicating if the header should be set. The return values are structured to handle three distinct states required by the backend: 1. Header not set: (value="", present=false) -> data is empty. 2. Header set to an empty string: (value="", present=true) -> data is a no-op. 3. Header set to a value: (value="...", present=true) -> data has locations.
Source Files ¶
internal.go version.go
Directories ¶
| Path | Synopsis |
|---|---|
| internal/compute | |
| internal/credsfile | Package credsfile is meant to hide implementation details from the pubic surface of the detect package. |
| internal/jwt | |
| internal/retry | |
| internal/testutil | |
| internal/testutil/testdns | Package testdns is a light DNS client used for testings to avoid pulling in dependencies. |
| internal/testutil/testgcs | Package testgcs is a light GCS client used for testings to avoid pulling in dependencies. |
| internal/transport | Package transport provided internal helpers for the two transport packages (grpctransport and httptransport). |
| internal/transport/cert | |
| internal/transport/cert/cmd | test_signer.go is a net/rpc server that listens on stdin/stdout, exposing mock methods for testing enterprise certificate proxy flow. |
| internal/transport/headers | |
| internal/trustboundary |
- Version
- v0.20.0 (latest)
- Published
- Apr 6, 2026
- Platform
- js/wasm
- Imports
- 13 packages
- Last checked
- 3 minutes ago –
Tools for package owners.