@@ -289,6 +289,7 @@ type LoginGovOptions struct {
289289 PubJWKURL string `yaml:"pubjwkURL,omitempty"`
290290}
291291
292+// Legacy default providers configuration
292293func providerDefaults() Providers {
293294 providers := Providers{
294295 {
@@ -310,3 +311,72 @@ func providerDefaults() Providers {
310311 }
311312 return providers
312313}
314+
315+// EnsureDefaults sets any default values for Providers fields.
316+func (p Providers) EnsureDefaults() {
317+ for i := range p {
318+ p[i].EnsureDefaults()
319+ }
320+}
321+
322+// EnsureDefaults sets any default values for Provider fields.
323+func (p *Provider) EnsureDefaults() {
324+ if p.SkipClaimsFromProfileURL == nil {
325+ p.SkipClaimsFromProfileURL = ptr.Ptr(false)
326+ }
327+ if p.UseSystemTrustStore == nil {
328+ p.UseSystemTrustStore = ptr.Ptr(true)
329+ }
330+
331+ p.OIDCConfig.EnsureDefaults()
332+ p.MicrosoftEntraIDConfig.EnsureDefaults()
333+ p.ADFSConfig.EnsureDefaults()
334+ p.GoogleConfig.EnsureDefaults()
335+}
336+
337+// EnsureDefaults sets any default values for OIDCOptions fields.
338+func (o *OIDCOptions) EnsureDefaults() {
339+ // Ensure OIDC defaults
340+ if o.InsecureAllowUnverifiedEmail == nil {
341+ o.InsecureAllowUnverifiedEmail = ptr.Ptr(false)
342+ }
343+ if o.InsecureSkipNonce == nil {
344+ o.InsecureSkipNonce = ptr.Ptr(true)
345+ }
346+ if o.SkipDiscovery == nil {
347+ o.SkipDiscovery = ptr.Ptr(false)
348+ }
349+ if o.UserIDClaim == "" {
350+ o.UserIDClaim = OIDCEmailClaim
351+ }
352+ if o.EmailClaim == "" {
353+ o.EmailClaim = OIDCEmailClaim
354+ }
355+ if o.GroupsClaim == "" {
356+ o.GroupsClaim = OIDCGroupsClaim
357+ }
358+ if len(o.AudienceClaims) == 0 {
359+ o.AudienceClaims = OIDCAudienceClaims
360+ }
361+}
362+
363+// EnsureDefaults sets any default values for MicrosoftEntraIDOptions fields.
364+func (me *MicrosoftEntraIDOptions) EnsureDefaults() {
365+ if me.FederatedTokenAuth == nil {
366+ me.FederatedTokenAuth = ptr.Ptr(false)
367+ }
368+}
369+
370+// EnsureDefaults sets any default values for ADFSOptions fields.
371+func (a *ADFSOptions) EnsureDefaults() {
372+ if a.SkipScope == nil {
373+ a.SkipScope = ptr.Ptr(false)
374+ }
375+}
376+
377+// EnsureDefaults sets any default values for GoogleOptions fields.
378+func (g *GoogleOptions) EnsureDefaults() {
379+ if g.UseApplicationDefaultCredentials == nil {
380+ g.UseApplicationDefaultCredentials = ptr.Ptr(false)
381+ }
382+}