From f6938e76dc99b9e56eee7b8dc57848d9949204d8 Mon Sep 17 00:00:00 2001 From: Martijn Pieters Date: Tue, 2 Nov 2021 00:39:37 +0000 Subject: [PATCH] Parse auth plugin information from env --- config/config.go | 16 ++++++++++++++++ config/config_test.go | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/config/config.go b/config/config.go index dd3760c3..11c0af15 100644 --- a/config/config.go +++ b/config/config.go @@ -697,6 +697,18 @@ func getKMSPluginFromEnv(idx int, pluginConfig *plugin.Config) bool { return isSet } +func getAuthPluginFromEnv(idx int, pluginConfig *plugin.Config) bool { + isSet := false + + authScope, ok := lookupIntFromEnv(fmt.Sprintf("SFTPGO_PLUGINS__%v__AUTH_OPTIONS__SCOPE", idx)) + if ok { + pluginConfig.AuthOptions.Scope = int(authScope) + isSet = true + } + + return isSet +} + func getNotifierPluginFromEnv(idx int, pluginConfig *plugin.Config) bool { isSet := false @@ -755,6 +767,10 @@ func getPluginsFromEnv(idx int) { isSet = true } + if getAuthPluginFromEnv(idx, &pluginConfig) { + isSet = true + } + cmd, ok := os.LookupEnv(fmt.Sprintf("SFTPGO_PLUGINS__%v__CMD", idx)) if ok { pluginConfig.Cmd = cmd diff --git a/config/config_test.go b/config/config_test.go index f5eb9d1a..81d4a257 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -440,6 +440,7 @@ func TestPluginsFromEnv(t *testing.T) { os.Setenv("SFTPGO_PLUGINS__0__AUTO_MTLS", "1") os.Setenv("SFTPGO_PLUGINS__0__KMS_OPTIONS__SCHEME", kms.SchemeAWS) os.Setenv("SFTPGO_PLUGINS__0__KMS_OPTIONS__ENCRYPTED_STATUS", kms.SecretStatusAWS) + os.Setenv("SFTPGO_PLUGINS__0__AUTH_OPTIONS__SCOPE", "14") t.Cleanup(func() { os.Unsetenv("SFTPGO_PLUGINS__0__TYPE") os.Unsetenv("SFTPGO_PLUGINS__0__NOTIFIER_OPTIONS__FS_EVENTS") @@ -453,6 +454,7 @@ func TestPluginsFromEnv(t *testing.T) { os.Unsetenv("SFTPGO_PLUGINS__0__AUTO_MTLS") os.Unsetenv("SFTPGO_PLUGINS__0__KMS_OPTIONS__SCHEME") os.Unsetenv("SFTPGO_PLUGINS__0__KMS_OPTIONS__ENCRYPTED_STATUS") + os.Unsetenv("SFTPGO_PLUGINS__0__AUTH_OPTIONS__SCOPE") }) configDir := ".." @@ -481,6 +483,7 @@ func TestPluginsFromEnv(t *testing.T) { require.True(t, pluginConf.AutoMTLS) require.Equal(t, kms.SchemeAWS, pluginConf.KMSOptions.Scheme) require.Equal(t, kms.SecretStatusAWS, pluginConf.KMSOptions.EncryptedStatus) + require.Equal(t, 14, pluginConf.AuthOptions.Scope) configAsJSON, err := json.Marshal(pluginsConf) require.NoError(t, err) @@ -517,6 +520,7 @@ func TestPluginsFromEnv(t *testing.T) { require.False(t, pluginConf.AutoMTLS) require.Equal(t, kms.SchemeVaultTransit, pluginConf.KMSOptions.Scheme) require.Equal(t, kms.SecretStatusVaultTransit, pluginConf.KMSOptions.EncryptedStatus) + require.Equal(t, 14, pluginConf.AuthOptions.Scope) err = os.Remove(configFilePath) assert.NoError(t, err)