func storeCredentials()

in cmd/saml2alibabacloud/commands/configure.go [66:99]


func storeCredentials(configFlags *flags.CommonFlags, account *cfg.IDPAccount) error {
	if configFlags.DisableKeychain {
		return nil
	}
	if configFlags.Password != "" {
		if err := credentials.SaveCredentials(account.URL, account.Username, configFlags.Password); err != nil {
			return errors.Wrap(err, "error storing password in keychain")
		}
	} else {
		password := prompter.Password("Password")
		if password != "" {
			if confirmPassword := prompter.Password("Confirm"); confirmPassword == password {
				if err := credentials.SaveCredentials(account.URL, account.Username, password); err != nil {
					return errors.Wrap(err, "error storing password in keychain")
				}
			} else {
				log.Println("Passwords did not match")
				os.Exit(1)
			}
		} else {
			log.Println("No password supplied")
		}
	}
	if account.Provider == onelogin.ProviderName {
		if configFlags.ClientID == "" || configFlags.ClientSecret == "" {
			log.Println("OneLogin provider requires --client_id and --client_secret flags to be set.")
			os.Exit(1)
		}
		if err := credentials.SaveCredentials(path.Join(account.URL, OneLoginOAuthPath), configFlags.ClientID, configFlags.ClientSecret); err != nil {
			return errors.Wrap(err, "error storing client_id and client_secret in keychain")
		}
	}
	return nil
}