fix(auth): retry up to three times when an auth provider cannot be reached

Resolves https://github.com/go-vikunja/vikunja/issues/2050
This commit is contained in:
kolaente
2026-01-05 21:50:32 +01:00
parent fde0944cda
commit c6fe4c1a6e
3 changed files with 67 additions and 5 deletions

View File

@@ -83,10 +83,16 @@ func init() {
}
func (p *Provider) setOicdProvider() (err error) {
p.openIDProvider, err = oidc.NewProvider(context.Background(), p.OriginalAuthURL)
err = utils.RetryWithBackoff(fmt.Sprintf("OpenID Connect provider '%s'", p.Name), func() error {
var providerErr error
p.openIDProvider, providerErr = oidc.NewProvider(context.Background(), p.OriginalAuthURL)
return providerErr
})
if err != nil && p.RequireAvailability {
log.Fatalf("OpenID Connect provider '%s' is not available and require_availability is enabled: %s", p.Name, err)
}
return err
}