Help us shape the future of Go! Take the 2026 Go Developer Survey

tokenprovider

package
v1.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 19, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewAuthenticator

func NewAuthenticator(provider TokenProvider) auth.Authenticator

NewAuthenticator creates an authenticator from a token provider

Types

type CachedTokenProvider

type CachedTokenProvider struct {

	// RefreshThreshold determines when to refresh (default 5 minutes before expiry)
	RefreshThreshold time.Duration
	// contains filtered or unexported fields
}

CachedTokenProvider wraps another provider and caches tokens

func NewCachedTokenProvider

func NewCachedTokenProvider(provider TokenProvider) *CachedTokenProvider

NewCachedTokenProvider creates a caching wrapper around any token provider

func (*CachedTokenProvider) ClearCache

func (p *CachedTokenProvider) ClearCache()

ClearCache clears the cached token

func (*CachedTokenProvider) GetToken

func (p *CachedTokenProvider) GetToken(ctx context.Context) (*Token, error)

GetToken retrieves a token, using cache if available and valid

func (*CachedTokenProvider) Name

func (p *CachedTokenProvider) Name() string

Name returns the provider name

type ExternalTokenProvider

type ExternalTokenProvider struct {
	// contains filtered or unexported fields
}

ExternalTokenProvider provides tokens from an external source (passthrough). This provider calls a user-supplied function to retrieve tokens on-demand.

func NewExternalTokenProvider

func NewExternalTokenProvider(tokenSource func() (string, error)) *ExternalTokenProvider

NewExternalTokenProvider creates a provider that gets tokens from an external function

func NewExternalTokenProviderWithType

func NewExternalTokenProviderWithType(tokenSource func() (string, error), tokenType string) *ExternalTokenProvider

NewExternalTokenProviderWithType creates a provider with a custom token type

func (*ExternalTokenProvider) GetToken

func (p *ExternalTokenProvider) GetToken(ctx context.Context) (*Token, error)

GetToken retrieves the token from the external source

func (*ExternalTokenProvider) Name

func (p *ExternalTokenProvider) Name() string

Name returns the provider name

type FederationProvider

type FederationProvider struct {
	// contains filtered or unexported fields
}

FederationProvider wraps another token provider and automatically handles token exchange

func NewFederationProvider

func NewFederationProvider(baseProvider TokenProvider, databricksHost string) *FederationProvider

NewFederationProvider creates a federation provider that wraps another provider It automatically detects when token exchange is needed and falls back gracefully

func NewFederationProviderWithClientID

func NewFederationProviderWithClientID(baseProvider TokenProvider, databricksHost, clientID string) *FederationProvider

NewFederationProviderWithClientID creates a provider for SP-wide federation (M2M)

func (*FederationProvider) GetToken

func (p *FederationProvider) GetToken(ctx context.Context) (*Token, error)

GetToken gets token from base provider and exchanges if needed

func (*FederationProvider) Name

func (p *FederationProvider) Name() string

Name returns the provider name

type StaticTokenProvider

type StaticTokenProvider struct {
	// contains filtered or unexported fields
}

StaticTokenProvider provides a static token that never changes

func NewStaticTokenProvider

func NewStaticTokenProvider(token string) *StaticTokenProvider

NewStaticTokenProvider creates a provider with a static token

func NewStaticTokenProviderWithType

func NewStaticTokenProviderWithType(token string, tokenType string) *StaticTokenProvider

NewStaticTokenProviderWithType creates a provider with a static token and custom type

func (*StaticTokenProvider) GetToken

func (p *StaticTokenProvider) GetToken(ctx context.Context) (*Token, error)

GetToken returns the static token

func (*StaticTokenProvider) Name

func (p *StaticTokenProvider) Name() string

Name returns the provider name

type Token

type Token struct {
	AccessToken  string
	TokenType    string
	ExpiresAt    time.Time
	RefreshToken string
	Scopes       []string
}

Token represents an access token with metadata

func (*Token) IsExpired

func (t *Token) IsExpired() bool

IsExpired checks if the token has expired

func (*Token) SetAuthHeader

func (t *Token) SetAuthHeader(r *http.Request)

SetAuthHeader sets the Authorization header on an HTTP request

type TokenProvider

type TokenProvider interface {
	// GetToken retrieves a valid access token
	GetToken(ctx context.Context) (*Token, error)

	// Name returns the provider name for logging/debugging
	Name() string
}

TokenProvider is the interface for providing tokens from various sources

type TokenProviderAuthenticator

type TokenProviderAuthenticator struct {
	// contains filtered or unexported fields
}

TokenProviderAuthenticator implements auth.Authenticator using a TokenProvider.

Authentication Flow: 1. On each Authenticate() call, retrieves a token from the configured TokenProvider 2. The provider may implement its own caching and refresh logic 3. Validates the returned token is non-empty 4. Sets the Authorization header with the token type and value

The authenticator delegates all token management (caching, refresh, expiry) to the underlying TokenProvider implementation.

func (*TokenProviderAuthenticator) Authenticate

func (a *TokenProviderAuthenticator) Authenticate(r *http.Request) error

Authenticate implements auth.Authenticator

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL