3
0
Files
corteza/internal/config/oidc.go
Tit Petric adeefdbeaa fix(all):
- config fixes for singleton values (most)
- add monitor into internal/metrics
- clean up cmd folders to remove monitor
- implement versions on all apps
2018-10-26 11:20:15 +02:00

52 lines
1.1 KiB
Go

package config
import (
"github.com/namsral/flag"
"github.com/pkg/errors"
)
type (
OIDC struct {
Issuer string
ClientID string
ClientSecret string
RedirectURL string
AppURL string
StateCookieExpiry int64
}
)
var oidc *OIDC
func (c *OIDC) Validate() error {
if c == nil {
return nil
}
if c.Issuer == "" {
return errors.New("OIDC Issuer not set for AUTH")
}
if c.RedirectURL == "" {
return errors.New("OIDC RedirectURL not set for AUTH")
}
return nil
}
func (*OIDC) Init(prefix ...string) *OIDC {
if oidc != nil {
return oidc
}
oidc = new(OIDC)
flag.StringVar(&oidc.Issuer, "auth-oidc-issuer", "", "OIDC Issuer")
flag.StringVar(&oidc.ClientID, "auth-oidc-client-id", "", "OIDC Client ID")
flag.StringVar(&oidc.ClientSecret, "auth-oidc-client-secret", "", "OIDC Client Secret")
flag.StringVar(&oidc.RedirectURL, "auth-oidc-redirect-url", "", "OIDC RedirectURL")
flag.StringVar(&oidc.AppURL, "auth-oidc-app-url", "", "OIDC AppURL")
flag.Int64Var(&oidc.StateCookieExpiry, "auth-oidc-state-cookie-expiry", 15, "OIDC State cookie expiry in minutes")
return oidc
}