Skip to content

Commit f0d38ab

Browse files
authored
Merge pull request #121 from authorizerdev/feat/add-jwt-algos
feat: add jwt algos
2 parents 6c2a4c3 + 1276af4 commit f0d38ab

File tree

17 files changed

+419
-120
lines changed

17 files changed

+419
-120
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@ clean:
1111
rm -rf build
1212
test:
1313
cd server && go clean --testcache && go test -v ./test
14+
generate:
15+
cd server && go get github.com/99designs/gqlgen/[email protected] && go run github.com/99designs/gqlgen generate
16+

server/constants/env.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ const (
4343
EnvKeyJwtType = "JWT_TYPE"
4444
// EnvKeyJwtSecret key for env variable JWT_SECRET
4545
EnvKeyJwtSecret = "JWT_SECRET"
46+
// EnvKeyJwtPrivateKey key for env variable JWT_PRIVATE_KEY
47+
EnvKeyJwtPrivateKey = "JWT_PRIVATE_KEY"
48+
// EnvKeyJwtPublicKey key for env variable JWT_PUBLIC_KEY
49+
EnvKeyJwtPublicKey = "JWT_PUBLIC_KEY"
4650
// EnvKeyAllowedOrigins key for env variable ALLOWED_ORIGINS
4751
EnvKeyAllowedOrigins = "ALLOWED_ORIGINS"
4852
// EnvKeyAppURL key for env variable APP_URL

server/env/env.go

Lines changed: 43 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func InitEnv() {
1919
envData := envstore.EnvInMemoryStoreObj.GetEnvStoreClone()
2020

2121
if envData.StringEnv[constants.EnvKeyEnv] == "" {
22-
envData.StringEnv[constants.EnvKeyEnv] = os.Getenv("ENV")
22+
envData.StringEnv[constants.EnvKeyEnv] = os.Getenv(constants.EnvKeyEnv)
2323
if envData.StringEnv[constants.EnvKeyEnv] == "" {
2424
envData.StringEnv[constants.EnvKeyEnv] = "production"
2525
}
@@ -50,18 +50,18 @@ func InitEnv() {
5050
}
5151

5252
if envData.StringEnv[constants.EnvKeyPort] == "" {
53-
envData.StringEnv[constants.EnvKeyPort] = os.Getenv("PORT")
53+
envData.StringEnv[constants.EnvKeyPort] = os.Getenv(constants.EnvKeyPort)
5454
if envData.StringEnv[constants.EnvKeyPort] == "" {
5555
envData.StringEnv[constants.EnvKeyPort] = "8080"
5656
}
5757
}
5858

5959
if envData.StringEnv[constants.EnvKeyAdminSecret] == "" {
60-
envData.StringEnv[constants.EnvKeyAdminSecret] = os.Getenv("ADMIN_SECRET")
60+
envData.StringEnv[constants.EnvKeyAdminSecret] = os.Getenv(constants.EnvKeyAdminSecret)
6161
}
6262

6363
if envData.StringEnv[constants.EnvKeyDatabaseType] == "" {
64-
envData.StringEnv[constants.EnvKeyDatabaseType] = os.Getenv("DATABASE_TYPE")
64+
envData.StringEnv[constants.EnvKeyDatabaseType] = os.Getenv(constants.EnvKeyDatabaseType)
6565

6666
if envstore.ARG_DB_TYPE != nil && *envstore.ARG_DB_TYPE != "" {
6767
envData.StringEnv[constants.EnvKeyDatabaseType] = *envstore.ARG_DB_TYPE
@@ -73,7 +73,7 @@ func InitEnv() {
7373
}
7474

7575
if envData.StringEnv[constants.EnvKeyDatabaseURL] == "" {
76-
envData.StringEnv[constants.EnvKeyDatabaseURL] = os.Getenv("DATABASE_URL")
76+
envData.StringEnv[constants.EnvKeyDatabaseURL] = os.Getenv(constants.EnvKeyDatabaseURL)
7777

7878
if envstore.ARG_DB_URL != nil && *envstore.ARG_DB_URL != "" {
7979
envData.StringEnv[constants.EnvKeyDatabaseURL] = *envstore.ARG_DB_URL
@@ -85,97 +85,105 @@ func InitEnv() {
8585
}
8686

8787
if envData.StringEnv[constants.EnvKeyDatabaseName] == "" {
88-
envData.StringEnv[constants.EnvKeyDatabaseName] = os.Getenv("DATABASE_NAME")
88+
envData.StringEnv[constants.EnvKeyDatabaseName] = os.Getenv(constants.EnvKeyDatabaseName)
8989
if envData.StringEnv[constants.EnvKeyDatabaseName] == "" {
9090
envData.StringEnv[constants.EnvKeyDatabaseName] = "authorizer"
9191
}
9292
}
9393

9494
if envData.StringEnv[constants.EnvKeySmtpHost] == "" {
95-
envData.StringEnv[constants.EnvKeySmtpHost] = os.Getenv("SMTP_HOST")
95+
envData.StringEnv[constants.EnvKeySmtpHost] = os.Getenv(constants.EnvKeySmtpHost)
9696
}
9797

9898
if envData.StringEnv[constants.EnvKeySmtpPort] == "" {
99-
envData.StringEnv[constants.EnvKeySmtpPort] = os.Getenv("SMTP_PORT")
99+
envData.StringEnv[constants.EnvKeySmtpPort] = os.Getenv(constants.EnvKeySmtpPort)
100100
}
101101

102102
if envData.StringEnv[constants.EnvKeySmtpUsername] == "" {
103-
envData.StringEnv[constants.EnvKeySmtpUsername] = os.Getenv("SMTP_USERNAME")
103+
envData.StringEnv[constants.EnvKeySmtpUsername] = os.Getenv(constants.EnvKeySmtpUsername)
104104
}
105105

106106
if envData.StringEnv[constants.EnvKeySmtpPassword] == "" {
107-
envData.StringEnv[constants.EnvKeySmtpPassword] = os.Getenv("SMTP_PASSWORD")
107+
envData.StringEnv[constants.EnvKeySmtpPassword] = os.Getenv(constants.EnvKeySmtpPassword)
108108
}
109109

110110
if envData.StringEnv[constants.EnvKeySenderEmail] == "" {
111-
envData.StringEnv[constants.EnvKeySenderEmail] = os.Getenv("SENDER_EMAIL")
111+
envData.StringEnv[constants.EnvKeySenderEmail] = os.Getenv(constants.EnvKeySenderEmail)
112112
}
113113

114114
if envData.StringEnv[constants.EnvKeyJwtSecret] == "" {
115-
envData.StringEnv[constants.EnvKeyJwtSecret] = os.Getenv("JWT_SECRET")
115+
envData.StringEnv[constants.EnvKeyJwtSecret] = os.Getenv(constants.EnvKeyJwtSecret)
116116
if envData.StringEnv[constants.EnvKeyJwtSecret] == "" {
117117
envData.StringEnv[constants.EnvKeyJwtSecret] = uuid.New().String()
118118
}
119119
}
120120

121+
if envData.StringEnv[constants.EnvKeyJwtPrivateKey] == "" {
122+
envData.StringEnv[constants.EnvKeyJwtPrivateKey] = os.Getenv(constants.EnvKeyJwtPrivateKey)
123+
}
124+
125+
if envData.StringEnv[constants.EnvKeyJwtPublicKey] == "" {
126+
envData.StringEnv[constants.EnvKeyJwtPublicKey] = os.Getenv(constants.EnvKeyJwtPublicKey)
127+
}
128+
121129
if envData.StringEnv[constants.EnvKeyJwtType] == "" {
122-
envData.StringEnv[constants.EnvKeyJwtType] = os.Getenv("JWT_TYPE")
130+
envData.StringEnv[constants.EnvKeyJwtType] = os.Getenv(constants.EnvKeyJwtType)
123131
if envData.StringEnv[constants.EnvKeyJwtType] == "" {
124132
envData.StringEnv[constants.EnvKeyJwtType] = "HS256"
125133
}
126134
}
127135

128136
if envData.StringEnv[constants.EnvKeyJwtRoleClaim] == "" {
129-
envData.StringEnv[constants.EnvKeyJwtRoleClaim] = os.Getenv("JWT_ROLE_CLAIM")
137+
envData.StringEnv[constants.EnvKeyJwtRoleClaim] = os.Getenv(constants.EnvKeyJwtRoleClaim)
130138

131139
if envData.StringEnv[constants.EnvKeyJwtRoleClaim] == "" {
132140
envData.StringEnv[constants.EnvKeyJwtRoleClaim] = "role"
133141
}
134142
}
135143

136144
if envData.StringEnv[constants.EnvKeyRedisURL] == "" {
137-
envData.StringEnv[constants.EnvKeyRedisURL] = os.Getenv("REDIS_URL")
145+
envData.StringEnv[constants.EnvKeyRedisURL] = os.Getenv(constants.EnvKeyRedisURL)
138146
}
139147

140148
if envData.StringEnv[constants.EnvKeyCookieName] == "" {
141-
envData.StringEnv[constants.EnvKeyCookieName] = os.Getenv("COOKIE_NAME")
149+
envData.StringEnv[constants.EnvKeyCookieName] = os.Getenv(constants.EnvKeyCookieName)
142150
if envData.StringEnv[constants.EnvKeyCookieName] == "" {
143151
envData.StringEnv[constants.EnvKeyCookieName] = "authorizer"
144152
}
145153
}
146154

147155
if envData.StringEnv[constants.EnvKeyGoogleClientID] == "" {
148-
envData.StringEnv[constants.EnvKeyGoogleClientID] = os.Getenv("GOOGLE_CLIENT_ID")
156+
envData.StringEnv[constants.EnvKeyGoogleClientID] = os.Getenv(constants.EnvKeyGoogleClientID)
149157
}
150158

151159
if envData.StringEnv[constants.EnvKeyGoogleClientSecret] == "" {
152-
envData.StringEnv[constants.EnvKeyGoogleClientSecret] = os.Getenv("GOOGLE_CLIENT_SECRET")
160+
envData.StringEnv[constants.EnvKeyGoogleClientSecret] = os.Getenv(constants.EnvKeyGoogleClientSecret)
153161
}
154162

155163
if envData.StringEnv[constants.EnvKeyGithubClientID] == "" {
156-
envData.StringEnv[constants.EnvKeyGithubClientID] = os.Getenv("GITHUB_CLIENT_ID")
164+
envData.StringEnv[constants.EnvKeyGithubClientID] = os.Getenv(constants.EnvKeyGithubClientID)
157165
}
158166

159167
if envData.StringEnv[constants.EnvKeyGithubClientSecret] == "" {
160-
envData.StringEnv[constants.EnvKeyGithubClientSecret] = os.Getenv("GITHUB_CLIENT_SECRET")
168+
envData.StringEnv[constants.EnvKeyGithubClientSecret] = os.Getenv(constants.EnvKeyGithubClientSecret)
161169
}
162170

163171
if envData.StringEnv[constants.EnvKeyFacebookClientID] == "" {
164-
envData.StringEnv[constants.EnvKeyFacebookClientID] = os.Getenv("FACEBOOK_CLIENT_ID")
172+
envData.StringEnv[constants.EnvKeyFacebookClientID] = os.Getenv(constants.EnvKeyFacebookClientID)
165173
}
166174

167175
if envData.StringEnv[constants.EnvKeyFacebookClientSecret] == "" {
168-
envData.StringEnv[constants.EnvKeyFacebookClientSecret] = os.Getenv("FACEBOOK_CLIENT_SECRET")
176+
envData.StringEnv[constants.EnvKeyFacebookClientSecret] = os.Getenv(constants.EnvKeyFacebookClientSecret)
169177
}
170178

171179
if envData.StringEnv[constants.EnvKeyResetPasswordURL] == "" {
172-
envData.StringEnv[constants.EnvKeyResetPasswordURL] = strings.TrimPrefix(os.Getenv("RESET_PASSWORD_URL"), "/")
180+
envData.StringEnv[constants.EnvKeyResetPasswordURL] = strings.TrimPrefix(os.Getenv(constants.EnvKeyResetPasswordURL), "/")
173181
}
174182

175-
envData.BoolEnv[constants.EnvKeyDisableBasicAuthentication] = os.Getenv("DISABLE_BASIC_AUTHENTICATION") == "true"
176-
envData.BoolEnv[constants.EnvKeyDisableEmailVerification] = os.Getenv("DISABLE_EMAIL_VERIFICATION") == "true"
177-
envData.BoolEnv[constants.EnvKeyDisableMagicLinkLogin] = os.Getenv("DISABLE_MAGIC_LINK_LOGIN") == "true"
178-
envData.BoolEnv[constants.EnvKeyDisableLoginPage] = os.Getenv("DISABLE_LOGIN_PAGE") == "true"
183+
envData.BoolEnv[constants.EnvKeyDisableBasicAuthentication] = os.Getenv(constants.EnvKeyDisableBasicAuthentication) == "true"
184+
envData.BoolEnv[constants.EnvKeyDisableEmailVerification] = os.Getenv(constants.EnvKeyDisableEmailVerification) == "true"
185+
envData.BoolEnv[constants.EnvKeyDisableMagicLinkLogin] = os.Getenv(constants.EnvKeyDisableMagicLinkLogin) == "true"
186+
envData.BoolEnv[constants.EnvKeyDisableLoginPage] = os.Getenv(constants.EnvKeyDisableLoginPage) == "true"
179187

180188
// no need to add nil check as its already done above
181189
if envData.StringEnv[constants.EnvKeySmtpHost] == "" || envData.StringEnv[constants.EnvKeySmtpUsername] == "" || envData.StringEnv[constants.EnvKeySmtpPassword] == "" || envData.StringEnv[constants.EnvKeySenderEmail] == "" && envData.StringEnv[constants.EnvKeySmtpPort] == "" {
@@ -187,7 +195,7 @@ func InitEnv() {
187195
envData.BoolEnv[constants.EnvKeyDisableMagicLinkLogin] = true
188196
}
189197

190-
allowedOriginsSplit := strings.Split(os.Getenv("ALLOWED_ORIGINS"), ",")
198+
allowedOriginsSplit := strings.Split(os.Getenv(constants.EnvKeyAllowedOrigins), ",")
191199
allowedOrigins := []string{}
192200
hasWildCard := false
193201

@@ -215,22 +223,22 @@ func InitEnv() {
215223

216224
envData.SliceEnv[constants.EnvKeyAllowedOrigins] = allowedOrigins
217225

218-
rolesEnv := strings.TrimSpace(os.Getenv("ROLES"))
226+
rolesEnv := strings.TrimSpace(os.Getenv(constants.EnvKeyRoles))
219227
rolesSplit := strings.Split(rolesEnv, ",")
220228
roles := []string{}
221229
if len(rolesEnv) == 0 {
222230
roles = []string{"user"}
223231
}
224232

225-
defaultRolesEnv := strings.TrimSpace(os.Getenv("DEFAULT_ROLES"))
233+
defaultRolesEnv := strings.TrimSpace(os.Getenv(constants.EnvKeyDefaultRoles))
226234
defaultRoleSplit := strings.Split(defaultRolesEnv, ",")
227235
defaultRoles := []string{}
228236

229237
if len(defaultRolesEnv) == 0 {
230238
defaultRoles = []string{"user"}
231239
}
232240

233-
protectedRolesEnv := strings.TrimSpace(os.Getenv("PROTECTED_ROLES"))
241+
protectedRolesEnv := strings.TrimSpace(os.Getenv(constants.EnvKeyProtectedRoles))
234242
protectedRolesSplit := strings.Split(protectedRolesEnv, ",")
235243
protectedRoles := []string{}
236244

@@ -259,12 +267,12 @@ func InitEnv() {
259267
envData.SliceEnv[constants.EnvKeyDefaultRoles] = defaultRoles
260268
envData.SliceEnv[constants.EnvKeyProtectedRoles] = protectedRoles
261269

262-
if os.Getenv("ORGANIZATION_NAME") != "" {
263-
envData.StringEnv[constants.EnvKeyOrganizationName] = os.Getenv("ORGANIZATION_NAME")
270+
if os.Getenv(constants.EnvKeyOrganizationName) != "" {
271+
envData.StringEnv[constants.EnvKeyOrganizationName] = os.Getenv(constants.EnvKeyOrganizationName)
264272
}
265273

266-
if os.Getenv("ORGANIZATION_LOGO") != "" {
267-
envData.StringEnv[constants.EnvKeyOrganizationLogo] = os.Getenv("ORGANIZATION_LOGO")
274+
if os.Getenv(constants.EnvKeyOrganizationLogo) != "" {
275+
envData.StringEnv[constants.EnvKeyOrganizationLogo] = os.Getenv(constants.EnvKeyOrganizationLogo)
268276
}
269277

270278
envstore.EnvInMemoryStoreObj.UpdateEnvStore(envData)

server/graph/generated/generated.go

Lines changed: 104 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)