Documentation
¶
Index ¶
- type AccessToken
- type AccessTokenImpl
- type AccessTokenSession
- type Client
- type ClientRequest
- type ClientTokenSession
- type Config
- type Factory
- type Prompt
- type PromptAnswer
- type PromptSorting
- type PromptsResp
- type StaleAccessToken
- type Token
- type TokenImpl
- type TokenInfo
- type TokenResp
- type UAA
- type UAAImpl
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessToken ¶
type AccessToken interface {
Token
RefreshToken() Token
Refresh() (AccessToken, error)
}
AccessToken is a token that can be refreshed.
type AccessTokenImpl ¶
type AccessTokenImpl struct {
// contains filtered or unexported fields
}
func (AccessTokenImpl) RefreshToken ¶
func (t AccessTokenImpl) RefreshToken() Token
type AccessTokenSession ¶
type AccessTokenSession struct {
// contains filtered or unexported fields
}
func NewAccessTokenSession ¶
func NewAccessTokenSession(accessToken StaleAccessToken) *AccessTokenSession
func (*AccessTokenSession) TokenFunc ¶
func (s *AccessTokenSession) TokenFunc(retried bool) (string, error)
TokenFunc retrieves new access token on first time use instead of using existing access token optimizing for token being valid for a longer period of time. Subsequent calls will reuse access token until it's time for it to be refreshed.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(endpoint string, client string, clientSecret string, httpClient boshhttp.HTTPClient, logger boshlog.Logger) Client
func (Client) ClientCredentialsGrant ¶
func (c Client) ClientCredentialsGrant() (TokenResp, error)
func (Client) OwnerPasswordCredentialsGrant ¶
func (c Client) OwnerPasswordCredentialsGrant(answers []PromptAnswer) (TokenResp, error)
func (Client) RefreshTokenGrant ¶
func (c Client) RefreshTokenGrant(refreshValue string) (TokenResp, error)
type ClientRequest ¶
type ClientRequest struct {
// contains filtered or unexported fields
}
func NewClientRequest ¶
func NewClientRequest(
endpoint string,
client string,
clientSecret string,
httpClient boshhttp.HTTPClient,
logger boshlog.Logger,
) ClientRequest
type ClientTokenSession ¶
type ClientTokenSession struct {
// contains filtered or unexported fields
}
func NewClientTokenSession ¶
func NewClientTokenSession(uaa UAA) *ClientTokenSession
type Config ¶
type Config struct {
Host string
Port int
Path string
Client string
ClientSecret string
CACert string
}
func NewConfigFromURL ¶
func NewConfigFromURL(url string) (Config, error)
func (Config) CACertPool ¶
func (c Config) CACertPool() (*x509.CertPool, error)
type Factory ¶
type Factory struct {
// contains filtered or unexported fields
}
func NewFactory ¶
func NewFactory(logger boshlog.Logger) Factory
type Prompt ¶
type Prompt struct {
Key string // e.g. "username"
Type string // e.g. "text", "password"
Label string // e.g. "Username"
}
func (Prompt) IsPassword ¶
func (p Prompt) IsPassword() bool
type PromptAnswer ¶
type PromptAnswer struct {
Key string // e.g. "username"
Value string
}
type PromptSorting ¶
type PromptSorting []Prompt
type PromptsResp ¶
type PromptsResp struct {
Prompts map[string][]string // e.g. {"username": ["text", "Username"]}
}
type StaleAccessToken ¶
type StaleAccessToken interface {
RefreshToken() Token
Refresh() (AccessToken, error)
}
StaleAccessToken represents a token that should only be refreshed. Its value cannot be retrieved since it's stale hence should not be used.
type Token ¶
type Token interface {
Type() string
Value() string
}
Token is a plain token with a value.
type TokenInfo ¶
type TokenInfo struct {
Username string `json:"user_name"` // e.g. "admin",
Scopes []string `json:"scope"` // e.g. ["openid","bosh.admin"]
ExpiredAt int `json:"exp"`
}
func NewTokenInfoFromValue ¶
func NewTokenInfoFromValue(value string) (TokenInfo, error)
type TokenResp ¶
type TokenResp struct {
Type string `json:"token_type"` // e.g. "bearer"
AccessToken string `json:"access_token"` // e.g. "eyJhbGciOiJSUzI1NiJ9.eyJq<snip>fQ.Mr<snip>RawG"
RefreshToken string `json:"refresh_token"` // e.g. "eyJhbGciOiJSUzI1NiJ9.eyJq<snip>fQ.Mr<snip>RawG"
}
type UAA ¶
type UAA interface {
NewStaleAccessToken(refreshValue string) StaleAccessToken
Prompts() ([]Prompt, error)
ClientCredentialsGrant() (Token, error)
OwnerPasswordCredentialsGrant([]PromptAnswer) (AccessToken, error)
}
type UAAImpl ¶
type UAAImpl struct {
// contains filtered or unexported fields
}
func (UAAImpl) ClientCredentialsGrant ¶
func (u UAAImpl) ClientCredentialsGrant() (Token, error)
func (UAAImpl) NewStaleAccessToken ¶
func (u UAAImpl) NewStaleAccessToken(refreshValue string) StaleAccessToken
func (UAAImpl) OwnerPasswordCredentialsGrant ¶
func (u UAAImpl) OwnerPasswordCredentialsGrant(answers []PromptAnswer) (AccessToken, error)
Source Files
¶
Click to show internal directories.
Click to hide internal directories.