Exemple #1
0
// NewAccess creates a new instance of Access using the given configuration.
func NewAccess(conf Config, name string, ks *keyStore.KeyStore) (*Access, error) {
	err := conf.Validate()
	if err != nil {
		return nil, err
	}
	if !ks.IsEnabled() {
		return newNoneInstance(name)
	}
	switch conf.Type {
	case None:
		return newNoneInstance(name)
	case Trusted:
		return newTrustedInstance(conf, name, ks)
	case GenerateToEnvironment:
		return newGenerateToEnvironmentInstance(conf, name, ks)
	case GenerateToFile:
		return newGenerateToFileInstance(conf, name, ks)
	}
	return nil, errors.New("Unknown access type %v.", conf.Type)
}