Skip to content

Commit d042fba

Browse files
authored
fix(auth): allow auth module config to be injected (#538)
1 parent 7fedd92 commit d042fba

2 files changed

Lines changed: 23 additions & 16 deletions

File tree

auth/cli.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func AddFlags(flags *flag.FlagSet) {
2222
flags.String(AuthServiceFlag, "", "Service")
2323
}
2424

25-
func defaultModuleConfig(cmd *cobra.Command) ModuleConfig {
25+
func ModuleConfigFromFlags(cmd *cobra.Command) ModuleConfig {
2626
authEnabled, _ := cmd.Flags().GetBool(AuthEnabledFlag)
2727
authIssuer, _ := cmd.Flags().GetString(AuthIssuerFlag)
2828
authReadKeySetMaxRetries, _ := cmd.Flags().GetInt(AuthReadKeySetMaxRetriesFlag)
@@ -40,17 +40,17 @@ func defaultModuleConfig(cmd *cobra.Command) ModuleConfig {
4040
}
4141

4242
func FXModuleFromFlags(cmd *cobra.Command) fx.Option {
43-
return Module(defaultModuleConfig(cmd))
43+
return Module(ModuleConfigFromFlags(cmd))
4444
}
4545

4646
func OrganizationAwareFXModuleFromFlags(cmd *cobra.Command, fn OrganizationIDProvider) fx.Option {
47-
cfg := defaultModuleConfig(cmd)
47+
cfg := ModuleConfigFromFlags(cmd)
4848
cfg.AdditionalChecks = append(cfg.AdditionalChecks, CheckOrganizationIDClaim(fn))
4949
return Module(cfg)
5050
}
5151

5252
func AdditionalChecksFXModuleFromFlags(cmd *cobra.Command, checks ...AdditionalCheck) fx.Option {
53-
cfg := defaultModuleConfig(cmd)
53+
cfg := ModuleConfigFromFlags(cmd)
5454
cfg.AdditionalChecks = append(cfg.AdditionalChecks, checks...)
5555
return Module(cfg)
5656
}

auth/module.go

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,23 @@ type ModuleConfig struct {
2222
}
2323

2424
func Module(cfg ModuleConfig) fx.Option {
25-
options := make([]fx.Option, 0)
25+
options := ModuleOptions()
26+
options = append(options, fx.Provide(func() ModuleConfig {
27+
return cfg
28+
}))
29+
return fx.Module("auth", options...)
30+
}
2631

27-
if !cfg.Enabled {
28-
options = append(options,
29-
fx.Provide(func() Authenticator {
30-
return NewNoAuth()
31-
}),
32-
)
33-
return fx.Module("auth", options...)
34-
}
32+
func ModuleOptions() []fx.Option {
33+
options := make([]fx.Option, 0)
3534

3635
options = append(options,
3736
fx.Supply(http.DefaultClient),
38-
fx.Provide(func(httpClient *http.Client) (oidc.KeySet, error) {
37+
fx.Provide(func(cfg ModuleConfig, httpClient *http.Client) (oidc.KeySet, error) {
38+
if !cfg.Enabled {
39+
// this won't be used by the NoAuth
40+
return oidc.NewStaticKeySet(), nil
41+
}
3942
retryableHttpClient := retryablehttp.NewClient()
4043
retryableHttpClient.RetryMax = cfg.ReadKeySetMaxRetries
4144
retryableHttpClient.HTTPClient = httpClient
@@ -54,7 +57,11 @@ func Module(cfg ModuleConfig) fx.Option {
5457
)
5558

5659
options = append(options,
57-
fx.Provide(func(keySet oidc.KeySet) Authenticator {
60+
fx.Provide(func(cfg ModuleConfig, keySet oidc.KeySet) Authenticator {
61+
if !cfg.Enabled {
62+
return NewNoAuth()
63+
}
64+
5865
return NewJWTAuth(
5966
keySet,
6067
cfg.Issuer,
@@ -64,5 +71,5 @@ func Module(cfg ModuleConfig) fx.Option {
6471
)
6572
}),
6673
)
67-
return fx.Module("auth", options...)
74+
return options
6875
}

0 commit comments

Comments
 (0)