93 lines
2.4 KiB
Go
93 lines
2.4 KiB
Go
package config
|
|
|
|
import "github.com/spf13/viper"
|
|
|
|
type Config struct {
|
|
Viper *viper.Viper
|
|
DataMaps DataMaps
|
|
ReverseProxies ReverseProxies `mapstructure:"reverse_proxies"`
|
|
TLS TLS `mapstructure:"tls"`
|
|
EntryPoints EntryPoints `mapstructure:"entry_points"`
|
|
Auth map[string]*AuthInstance `mapstructure:"auth"`
|
|
}
|
|
|
|
type DataMaps struct {
|
|
DomainToProxy map[string]string
|
|
DomainToAuth map[string]string
|
|
DomainToCert map[string]string
|
|
}
|
|
|
|
// AUTH
|
|
// type Auth map[string]AuthInstance
|
|
|
|
type AuthInstance struct {
|
|
Paths Paths `mapstructure:"paths"`
|
|
OpenID OpenID `mapstructure:"open_id"`
|
|
}
|
|
type Paths struct {
|
|
Prefix string `mapstructure:"prefix"`
|
|
Login string `mapstructure:"login"`
|
|
Logout string `mapstructure:"logout"`
|
|
Callback string `mapstructure:"callback"`
|
|
}
|
|
type OpenID struct {
|
|
Host string `mapstructure:"host"`
|
|
Realm string `mapstructure:"realm"`
|
|
ClientID string `mapstructure:"client_id"`
|
|
ClientSecert string `mapstructure:"client_secret"`
|
|
RedirectURI string `mapstructure:"redirect_uri"`
|
|
PostLogoutRedirectURI string `mapstructure:"post_logout_redirect_uri"`
|
|
ConfigPath string `mapstructure:"config_path"`
|
|
EndPoints *EndPoints
|
|
}
|
|
|
|
type EndPoints struct {
|
|
Issuer string
|
|
Auth string
|
|
Introspection string
|
|
Token string
|
|
UserInfo string
|
|
Logout string
|
|
JwksUri string
|
|
}
|
|
|
|
// type OpenIdEndPoints struct {
|
|
// Issuer string
|
|
// Authorization string
|
|
// Token string
|
|
// Introspection string
|
|
// UserInfo string
|
|
// EndSession string
|
|
// }
|
|
|
|
// ReverseProxies
|
|
|
|
type ReverseProxies map[string]ReverseProxy
|
|
|
|
type ReverseProxy struct {
|
|
Domain string `mapstructure:"domain"`
|
|
Host string `mapstructure:"host"`
|
|
EntryPoint string `mapstructure:"entry_point"`
|
|
TLS TLS_RP `mapstructure:"tls"`
|
|
Auth string `mapstructure:"auth"`
|
|
}
|
|
type TLS_RP struct {
|
|
Enabled bool `mapstructure:"enabled"`
|
|
Certs string `mapstructure:"certs"`
|
|
}
|
|
|
|
// TLS
|
|
type TLS struct {
|
|
Certs map[string]Certs `mapstructure:"certs"`
|
|
}
|
|
type Certs struct {
|
|
Cert string `mapstructure:"cert"`
|
|
Key string `mapstructure:"key"`
|
|
}
|
|
|
|
// EntryPoints
|
|
type EntryPoints map[string]EntryPoint
|
|
type EntryPoint struct {
|
|
Port string `mapstructure:"port"`
|
|
TLS bool `mapstructure:"tls"`
|
|
}
|