/
auth.go
99 lines (94 loc) · 2.35 KB
/
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package settings
import (
"os"
)
//
// Environment variables
const (
EnvAuthRequired = "AUTH_REQUIRED"
EnvKeycloakHost = "KEYCLOAK_HOST"
EnvKeycloakRealm = "KEYCLOAK_REALM"
EnvKeycloakClientID = "KEYCLOAK_CLIENT_ID"
EnvKeycloakClientSecret = "KEYCLOAK_CLIENT_SECRET"
EnvKeycloakAdminUser = "KEYCLOAK_ADMIN_USER"
EnvKeycloakAdminPass = "KEYCLOAK_ADMIN_PASS"
EnvKeycloakAdminRealm = "KEYCLOAK_ADMIN_REALM"
EnvKeycloakReqPassUpdate = "KEYCLOAK_REQ_PASS_UPDATE"
EnvBuiltinTokenKey = "ADDON_TOKEN"
EnvRolePath = "ROLE_PATH"
EnvUserPath = "USER_PATH"
)
type Auth struct {
// Auth required
Required bool
// Keycloak client config
Keycloak struct {
Host string
Realm string
ClientID string
ClientSecret string
Admin struct {
User string
Pass string
Realm string
}
RequirePasswordUpdate bool
}
// Path to role yaml
RolePath string
// Path to user yaml
UserPath string
// Token settings for builtin provider.
Token struct {
Key string
}
}
func (r *Auth) Load() (err error) {
var found bool
r.Required = getEnvBool(EnvAuthRequired, false)
if !r.Required {
return
}
r.Keycloak.Host, found = os.LookupEnv(EnvKeycloakHost)
if !found {
r.Keycloak.Host = "https://localhost:8081"
}
r.Keycloak.Realm, found = os.LookupEnv(EnvKeycloakRealm)
if !found {
r.Keycloak.Realm = "konveyor"
}
r.Keycloak.ClientID, found = os.LookupEnv(EnvKeycloakClientID)
if !found {
r.Keycloak.ClientID = "konveyor"
}
r.Keycloak.ClientSecret, found = os.LookupEnv(EnvKeycloakClientSecret)
if !found {
r.Keycloak.ClientSecret = ""
}
r.Keycloak.Admin.User, found = os.LookupEnv(EnvKeycloakAdminUser)
if !found {
r.Keycloak.Admin.User = "admin"
}
r.Keycloak.Admin.Pass, found = os.LookupEnv(EnvKeycloakAdminPass)
if !found {
r.Keycloak.Admin.Pass = "admin"
}
r.Keycloak.Admin.Realm, found = os.LookupEnv(EnvKeycloakAdminRealm)
if !found {
r.Keycloak.Admin.Realm = "master"
}
r.Keycloak.RequirePasswordUpdate = getEnvBool(EnvKeycloakReqPassUpdate, true)
r.Token.Key, found = os.LookupEnv(EnvBuiltinTokenKey)
if !found {
r.Token.Key = "konveyor"
}
r.RolePath, found = os.LookupEnv(EnvRolePath)
if !found {
r.RolePath = "/tmp/roles.yaml"
}
r.UserPath, found = os.LookupEnv(EnvUserPath)
if !found {
r.UserPath = "/tmp/users.yaml"
}
return
}