svchost/auth: HostCredentialsFromMap function

This function deals with turning a map derived from some user input
(e.g. in a config file) into a HostCredentials object, if possible. This
will be used as a standard way to specify credentials so we have a place
to add new credentials types in future and have support for those across
all of our map-based CredentialsSources.
This commit is contained in:
Martin Atkins 2017-10-17 18:03:16 -07:00
parent 43a3357473
commit 1b60e8fdb6
1 changed files with 18 additions and 0 deletions

18
svchost/auth/from_map.go Normal file
View File

@ -0,0 +1,18 @@
package auth
// HostCredentialsFromMap converts a map of key-value pairs from a credentials
// definition provided by the user (e.g. in a config file, or via a credentials
// helper) into a HostCredentials object if possible, or returns nil if
// no credentials could be extracted from the map.
//
// This function ignores map keys it is unfamiliar with, to allow for future
// expansion of the credentials map format for new credential types.
func HostCredentialsFromMap(m map[string]interface{}) HostCredentials {
if m == nil {
return nil
}
if token, ok := m["token"].(string); ok {
return HostCredentialsToken(token)
}
return nil
}