Ensure flag values are set correctly
This commit is contained in:
parent
8e92e3dc3d
commit
765443bc41
@ -29,6 +29,7 @@ func New() *Options {
|
||||
// correct configuration options
|
||||
func Load(config io.Reader, configType string, args []string) (*Options, error) {
|
||||
flagSet := flag.NewFlagSet("oauth2-proxy", flag.ExitOnError)
|
||||
flagSet.SetNormalizeFunc(wordSepNormalizeFunc)
|
||||
|
||||
// Add FlagSets to main flagSet
|
||||
flagSet.AddFlagSet(cookieFlagSet)
|
||||
@ -68,3 +69,14 @@ func Load(config io.Reader, configType string, args []string) (*Options, error)
|
||||
}
|
||||
return options, nil
|
||||
}
|
||||
|
||||
// wordSepNormalizeFunc replaces "-" in flags entered with "."
|
||||
// This ensures that flags are mapped to the correct values in the Options struct
|
||||
func wordSepNormalizeFunc(f *flag.FlagSet, name string) flag.NormalizedName {
|
||||
from := []string{"-"}
|
||||
to := "."
|
||||
for _, sep := range from {
|
||||
name = strings.Replace(name, sep, to, -1)
|
||||
}
|
||||
return flag.NormalizedName(name)
|
||||
}
|
||||
|
@ -110,7 +110,41 @@ var _ = Describe("Load", func() {
|
||||
}
|
||||
Expect(opts.Cookie).To(Equal(expected))
|
||||
})
|
||||
})
|
||||
|
||||
Context("with flag configuration", func() {
|
||||
Context("with hyphens", func() {
|
||||
BeforeEach(func() {
|
||||
args = []string{
|
||||
"--cookie-name=flag_cookie_name",
|
||||
"--cookie-secret=flag_secret_1234",
|
||||
"--cookie-domain=flag.example.com",
|
||||
"--cookie-path=/flag",
|
||||
"--cookie-expire=48h",
|
||||
"--cookie-refresh=4h",
|
||||
"--cookie-secure=false",
|
||||
"--cookie-httponly=false",
|
||||
}
|
||||
})
|
||||
|
||||
It("returns no error", func() {
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
})
|
||||
|
||||
It("the environment overrides the config file", func() {
|
||||
expected := &CookieOptions{
|
||||
Name: "flag_cookie_name",
|
||||
Secret: "flag_secret_1234",
|
||||
Domain: "flag.example.com",
|
||||
Path: "/flag",
|
||||
Expire: time.Duration(48) * time.Hour,
|
||||
Refresh: time.Duration(4) * time.Hour,
|
||||
Secure: false,
|
||||
HTTPOnly: false,
|
||||
}
|
||||
Expect(opts.Cookie).To(Equal(expected))
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user