Documentation
¶
Index ¶
- Constants
- Variables
- type Credential
- func (p Credential) APIKey() (apiKey string)
- func (p Credential) Base64() (value string)
- func (p Credential) Basic() (user, password string)
- func (p Credential) File() (path string)
- func (p Credential) Hmac() (accessKey, secretKey string)
- func (p Credential) Protocol() string
- func (p Credential) String() string
- func (p Credential) Value() []string
- type Error
Examples ¶
Constants ¶
View Source
const ( // ProtocolHmac will hold access key and secret key credential. // // HMAC means hash-based message authentication code, it may be inaccurate to represent credential // protocol ak/sk(access key + secret key with hmac), but it's simple and no confuse with other // protocol, so just keep this. // // value = [Access Key, Secret Key] ProtocolHmac = "hmac" // ProtocolAPIKey will hold api key credential. // // value = [API Key] ProtocolAPIKey = "apikey" // ProtocolFile will hold file credential. // // value = [File Path], service decide how to use this file ProtocolFile = "file" // ProtocolEnv will represent credential from env. // // value = [], service retrieves credential value from env. ProtocolEnv = "env" // ProtocolBase64 will represents credential binary data in base64 // // Storage service like gcs will take token files as input, we provide base64 protocol so that user // can pass token binary data directly. ProtocolBase64 = "base64" // ProtocolBasic will hold user and password credential. // // value = [user, password] ProtocolBasic = "basic" )
Variables ¶
View Source
var ( // ErrUnsupportedProtocol means protocol is unsupported ErrUnsupportedProtocol = errors.New("unsupported protocol") // ErrInvalidValue means value is invalid. ErrInvalidValue = errors.New("invalid value") )
Functions ¶
This section is empty.
Types ¶
type Credential ¶
type Credential struct {
// contains filtered or unexported fields
}
Credential will provide credential protocol and values.
func Parse ¶
func Parse(cfg string) (Credential, error)
Parse will parse config string to create a credential Credential.
Example ¶
cred, err := Parse("hmac:access_key:secret_key") if err != nil { log.Fatal("parse: ", err) } switch cred.Protocol() { case ProtocolHmac: ak, sk := cred.Hmac() log.Println("access_key: ", ak) log.Println("secret_key: ", sk) case ProtocolAPIKey: apikey := cred.APIKey() log.Println("apikey: ", apikey) case ProtocolFile: path := cred.File() log.Println("path: ", path) case ProtocolEnv: log.Println("use env value") case ProtocolBase64: content := cred.Base64() log.Println("base64: ", content) case ProtocolBasic: user, password := cred.Basic() log.Println("user: ", user) log.Println("password: ", password) default: panic("unsupported protocol") }
Output:
func (Credential) APIKey ¶
func (p Credential) APIKey() (apiKey string)
func (Credential) Base64 ¶
func (p Credential) Base64() (value string)
func (Credential) Basic ¶
func (p Credential) Basic() (user, password string)
func (Credential) File ¶
func (p Credential) File() (path string)
func (Credential) Hmac ¶
func (p Credential) Hmac() (accessKey, secretKey string)
func (Credential) Protocol ¶
func (p Credential) Protocol() string
Protocol provides current credential's protocol.
func (Credential) String ¶
func (p Credential) String() string
Value provides current credential's value in string array.
func (Credential) Value ¶
func (p Credential) Value() []string
Value provides current credential's value in string array.
Click to show internal directories.
Click to hide internal directories.