Documentation ¶
Index ¶
- Constants
- Variables
- func FlagSet(name string) *flag.FlagSet
- func IsURLEmpty(url *url.URL) bool
- func StringToTemplateHookFunc() mapstructure.DecodeHookFuncType
- func StringToURLHookFunc() mapstructure.DecodeHookFuncType
- func Validate(mode int, conf Config) error
- type Config
- type Debug
- type HTTP
- type HTTPCheck
- type Log
- type OAuth2
- type OAuth2Client
- type OAuth2Endpoints
- type OAuth2Refresh
- type OAuth2Validate
- type OpenVPNCommonName
- type OpenVPNCommonNameMode
- type OpenVpn
- type OpenVpnBypass
- type Provider
- type ProviderGoogle
- type Secret
- type StringSlice
Constants ¶
View Source
const ( Plugin = iota ManagementClient )
Variables ¶
View Source
var Defaults = Config{ Debug: Debug{ Listen: ":9001", }, Log: Log{ Format: "console", Level: slog.LevelInfo, }, HTTP: HTTP{ BaseURL: &url.URL{ Scheme: "http", Host: "localhost:9000", }, Listen: ":9000", TLS: false, Check: HTTPCheck{ IPAddr: false, }, CallbackTemplate: template.Must(template.New("index.gohtml").ParseFS(ui.Template, "index.gohtml")), }, OpenVpn: OpenVpn{ Addr: &url.URL{ Scheme: "unix", Path: "/run/openvpn/server.sock", OmitHost: true, }, AuthTokenUser: true, AuthPendingTimeout: 3 * time.Minute, CommonName: OpenVPNCommonName{ Mode: CommonNameModePlain, }, Bypass: OpenVpnBypass{ CommonNames: make([]string, 0), }, }, OAuth2: OAuth2{ Provider: "generic", Issuer: &url.URL{Scheme: "", Host: ""}, Endpoints: OAuth2Endpoints{ Auth: &url.URL{Scheme: "", Host: ""}, Discovery: &url.URL{Scheme: "", Host: ""}, Token: &url.URL{Scheme: "", Host: ""}, }, Pkce: true, Nonce: true, Client: OAuth2Client{}, Validate: OAuth2Validate{ Groups: make([]string, 0), Roles: make([]string, 0), IPAddr: false, Issuer: true, }, Refresh: OAuth2Refresh{ Expires: time.Hour * 8, }, Scopes: []string{}, }, }
View Source
var ErrRequired = errors.New("required")
Functions ¶
func IsURLEmpty ¶ added in v1.12.0
func StringToTemplateHookFunc ¶ added in v1.6.0
func StringToTemplateHookFunc() mapstructure.DecodeHookFuncType
StringToTemplateHookFunc parse a string to template.Template.
func StringToURLHookFunc ¶ added in v1.7.0
func StringToURLHookFunc() mapstructure.DecodeHookFuncType
StringToURLHookFunc parse a string to url.URL.
Types ¶
type Config ¶
type HTTP ¶ added in v1.7.0
type HTTP struct { Listen string `koanf:"listen"` CertFile string `koanf:"cert"` KeyFile string `koanf:"key"` TLS bool `koanf:"tls"` BaseURL *url.URL `koanf:"baseurl"` Secret Secret `koanf:"secret"` CallbackTemplate *template.Template `koanf:"template"` Check HTTPCheck `koanf:"check"` EnableProxyHeaders bool `koanf:"enable-proxy-headers"` }
type OAuth2 ¶ added in v1.0.0
type OAuth2 struct { Issuer *url.URL `koanf:"issuer"` Provider string `koanf:"provider"` AuthorizeParams string `koanf:"authorize-params"` Endpoints OAuth2Endpoints `koanf:"endpoint"` Client OAuth2Client `koanf:"client"` Scopes StringSlice `koanf:"scopes"` Nonce bool `koanf:"nonce"` Pkce bool `koanf:"pkce"` Validate OAuth2Validate `koanf:"validate"` Refresh OAuth2Refresh `koanf:"refresh"` }
type OAuth2Client ¶ added in v1.0.0
type OAuth2Endpoints ¶ added in v1.2.0
type OAuth2Refresh ¶ added in v1.13.0
type OAuth2Validate ¶ added in v1.0.0
type OAuth2Validate struct { Acr StringSlice `koanf:"acr"` Groups StringSlice `koanf:"groups"` Roles StringSlice `koanf:"roles"` IPAddr bool `koanf:"ipaddr"` Issuer bool `koanf:"issuer"` CommonName string `koanf:"common-name"` }
type OpenVPNCommonName ¶ added in v1.12.0
type OpenVPNCommonName struct {
Mode OpenVPNCommonNameMode `koanf:"mode"`
}
type OpenVPNCommonNameMode ¶ added in v1.12.0
type OpenVPNCommonNameMode int
const ( CommonNameModePlain OpenVPNCommonNameMode = iota CommonNameModeOmit CommonNameModeOmitValue = "-" )
func (OpenVPNCommonNameMode) MarshalText ¶ added in v1.12.0
func (s OpenVPNCommonNameMode) MarshalText() ([]byte, error)
func (OpenVPNCommonNameMode) String ¶ added in v1.12.0
func (s OpenVPNCommonNameMode) String() string
func (*OpenVPNCommonNameMode) UnmarshalText ¶ added in v1.12.0
func (s *OpenVPNCommonNameMode) UnmarshalText(text []byte) error
type OpenVpn ¶ added in v1.0.0
type OpenVpn struct { Addr *url.URL `koanf:"addr"` Password Secret `koanf:"password"` Bypass OpenVpnBypass `koanf:"bypass"` AuthTokenUser bool `koanf:"auth-token-user"` AuthPendingTimeout time.Duration `koanf:"auth-pending-timeout"` CommonName OpenVPNCommonName `koanf:"common-name"` }
type OpenVpnBypass ¶ added in v1.1.0
type OpenVpnBypass struct {
CommonNames StringSlice `koanf:"common-names"`
}
type Provider ¶ added in v1.15.0
type Provider struct {
Google ProviderGoogle `koanf:"google"`
}
type ProviderGoogle ¶ added in v1.15.0
type Secret ¶ added in v1.13.0
type Secret string
func (Secret) MarshalText ¶ added in v1.13.0
MarshalText implements encoding.TextMarshaler interface for Secret
func (*Secret) UnmarshalText ¶ added in v1.13.0
UnmarshalText implements the encoding.TextUnmarshaler interface for Secret
type StringSlice ¶ added in v1.13.0
type StringSlice []string
func (StringSlice) MarshalText ¶ added in v1.13.0
func (stringSlice StringSlice) MarshalText() ([]byte, error)
MarshalText implements encoding.TextMarshaler interface for StringSlice
func (*StringSlice) UnmarshalText ¶ added in v1.13.0
func (stringSlice *StringSlice) UnmarshalText(text []byte) error
UnmarshalText implements the encoding.TextUnmarshaler interface for StringSlice
Click to show internal directories.
Click to hide internal directories.