git.iko.soy/typeable/oauth2-proxy
on ea261ca help sign in
37 lines 1.1 kB history raw
1package validation
3import (
4 "fmt"
5 "os"
7 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
8)
10const multipleValuesForSecretSource = "multiple values specified for secret source: specify either value, fromEnv of fromFile"
12func validateSecretSource(source options.SecretSource) string {
13 switch {
14 case len(source.Value) > 0 && source.FromEnv == "" && source.FromFile == "":
15 return ""
16 case len(source.Value) == 0 && source.FromEnv != "" && source.FromFile == "":
17 return validateSecretSourceEnv(source.FromEnv)
18 case len(source.Value) == 0 && source.FromEnv == "" && source.FromFile != "":
19 return validateSecretSourceFile(source.FromFile)
20 default:
21 return multipleValuesForSecretSource
22 }
25func validateSecretSourceEnv(key string) string {
26 if value := os.Getenv(key); value == "" {
27 return fmt.Sprintf("error loading secret from environent: no value for for key %q", key)
28 }
29 return ""
32func validateSecretSourceFile(path string) string {
33 if _, err := os.Stat(path); err != nil {
34 return fmt.Sprintf("error loadig secret from file: %v", err)
35 }
36 return ""