Credentials is an interface that defines the methods for credentials. It is used to provide the credentials for authentication.
type Credentials interface {
// BasicAuth returns the username and password for basic authentication.
BasicAuth() (username string, password string)
// RawCredentials returns the raw credentials as a string.
// This can be used to extract the username and password from the raw credentials or
// additional information if present in the token.
RawCredentials() string
}
func NewBasicCredentials(username, password string) Credentials
NewBasicCredentials creates a new Credentials object from the given username and password.
CredentialsListener is an interface that defines the methods for a credentials listener. It is used to receive updates when the credentials change. The OnNext method is called when the credentials change. The OnError method is called when an error occurs while requesting the credentials.
type CredentialsListener interface {
OnNext(credentials Credentials)
OnError(err error)
}
ReAuthCredentialsListener is a struct that implements the CredentialsListener interface. It is used to re-authenticate the credentials when they are updated. It contains: - reAuth: a function that takes the new credentials and returns an error if any. - onErr: a function that takes an error and handles it.
type ReAuthCredentialsListener struct {
// contains filtered or unexported fields
}
func NewReAuthCredentialsListener(reAuth func(credentials Credentials) error, onErr func(err error)) *ReAuthCredentialsListener
NewReAuthCredentialsListener creates a new ReAuthCredentialsListener. Implements the auth.CredentialsListener interface.
func (c *ReAuthCredentialsListener) OnError(err error)
OnError is called when an error occurs. It can be called from both the credentials provider and the reAuth function.
func (c *ReAuthCredentialsListener) OnNext(credentials Credentials)
OnNext is called when the credentials are updated. It calls the reAuth function with the new credentials. If the reAuth function returns an error, it calls the onErr function with the error.
StreamingCredentialsProvider is an interface that defines the methods for a streaming credentials provider. It is used to provide credentials for authentication. The CredentialsListener is used to receive updates when the credentials change.
type StreamingCredentialsProvider interface {
// Subscribe subscribes to the credentials provider for updates.
// It returns the current credentials, a cancel function to unsubscribe from the provider,
// and an error if any.
// TODO(ndyakov): Should we add context to the Subscribe method?
Subscribe(listener CredentialsListener) (Credentials, UnsubscribeFunc, error)
}
UnsubscribeFunc is a function that is used to cancel the subscription to the credentials provider. It is used to unsubscribe from the provider when the credentials are no longer needed.
type UnsubscribeFunc func() error