summaryrefslogtreecommitdiff
path: root/internal/configuration/helpers.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/configuration/helpers.go')
-rw-r--r--internal/configuration/helpers.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/internal/configuration/helpers.go b/internal/configuration/helpers.go
new file mode 100644
index 000000000..6301e4ddf
--- /dev/null
+++ b/internal/configuration/helpers.go
@@ -0,0 +1,55 @@
+package configuration
+
+import (
+ "io/ioutil"
+ "strings"
+
+ "github.com/authelia/authelia/internal/utils"
+)
+
+func getEnvConfigMap(keys []string, prefix, delimiter string) (keyMap map[string]string, ignoredKeys []string) {
+ keyMap = make(map[string]string)
+
+ for _, key := range keys {
+ if strings.Contains(key, delimiter) {
+ originalKey := prefix + strings.ToUpper(strings.ReplaceAll(key, constDelimiter, delimiter))
+ keyMap[originalKey] = key
+ }
+
+ // Secret envs should be ignored by the env parser.
+ if isSecretKey(key) {
+ originalKey := strings.ToUpper(strings.ReplaceAll(key, constDelimiter, delimiter)) + constSecretSuffix
+
+ ignoredKeys = append(ignoredKeys, prefix+originalKey)
+ }
+ }
+
+ return keyMap, ignoredKeys
+}
+
+func getSecretConfigMap(keys []string, prefix, delimiter string) (keyMap map[string]string) {
+ keyMap = make(map[string]string)
+
+ for _, key := range keys {
+ if isSecretKey(key) {
+ originalKey := strings.ToUpper(strings.ReplaceAll(key, constDelimiter, delimiter)) + constSecretSuffix
+
+ keyMap[prefix+originalKey] = key
+ }
+ }
+
+ return keyMap
+}
+
+func isSecretKey(key string) (isSecretKey bool) {
+ return utils.IsStringInSliceSuffix(key, secretSuffixes)
+}
+
+func loadSecret(path string) (value string, err error) {
+ content, err := ioutil.ReadFile(path)
+ if err != nil {
+ return "", err
+ }
+
+ return strings.TrimRight(string(content), "\n"), err
+}