/
auth.go
43 lines (37 loc) · 902 Bytes
/
auth.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package config
import (
"github.com/oidc-proxy-ecosystem/proxy-server/utils"
)
type Auth struct {
Path string `yaml:"path"`
Login string `yaml:"login"`
Callback string `yaml:"callback"`
Logout string `yaml:"logout"`
UserInfo string `yaml:"userinfo"`
}
func NewAuthConfig(filename string) Auth {
var auth Auth
utils.MustReadYaml(filename, &auth)
setDefault(&auth.Path, "/auth")
setDefault(&auth.Login, "/login")
setDefault(&auth.Callback, "/callback")
setDefault(&auth.Logout, "/logout")
setDefault(&auth.UserInfo, "/userinfo")
checkPrefix(&auth.Path)
checkPrefix(&auth.Login)
checkPrefix(&auth.Callback)
checkPrefix(&auth.Logout)
checkPrefix(&auth.UserInfo)
return auth
}
func checkPrefix(value *string) {
v := *value
if v[0] != '/' {
*value = "/" + *value
}
}
func setDefault(value *string, defaultValue string) {
if *value == "" {
*value = defaultValue
}
}