diff --git a/pkg/issuer/acme/dns/azuredns/azuredns.go b/pkg/issuer/acme/dns/azuredns/azuredns.go index c6148feff..7fedb0cbd 100644 --- a/pkg/issuer/acme/dns/azuredns/azuredns.go +++ b/pkg/issuer/acme/dns/azuredns/azuredns.go @@ -210,7 +210,7 @@ func (c *DNSProvider) updateTXTRecord(ctx context.Context, fqdn string, updater resp, err := c.recordClient.Get(ctx, c.resourceGroupName, zone, name, dns.RecordTypeTXT, nil) if err != nil { var respErr *azcore.ResponseError - if errors.As(err, &respErr); respErr.StatusCode == http.StatusNotFound { + if errors.As(err, &respErr); respErr != nil && respErr.StatusCode == http.StatusNotFound { set = &dns.RecordSet{ Properties: &dns.RecordSetProperties{ TTL: to.Ptr(int64(60)), diff --git a/pkg/issuer/acme/dns/azuredns/azuredns_test.go b/pkg/issuer/acme/dns/azuredns/azuredns_test.go index 5823bab98..7dcf94ed7 100644 --- a/pkg/issuer/acme/dns/azuredns/azuredns_test.go +++ b/pkg/issuer/acme/dns/azuredns/azuredns_test.go @@ -128,6 +128,17 @@ func TestInvalidAzureDns(t *testing.T) { assert.Error(t, err) } +func TestAuthenticationError(t *testing.T) { + provider, err := NewDNSProviderCredentials("", "invalid-client-id", "invalid-client-secret", "subid", "tenid", "rg", "example.com", util.RecursiveNameservers, false, &v1.AzureManagedIdentity{}) + assert.NoError(t, err) + + err = provider.Present(context.TODO(), "example.com", "_acme-challenge.example.com.", "123d==") + assert.Error(t, err) + + err = provider.CleanUp(context.TODO(), "example.com", "_acme-challenge.example.com.", "123d==") + assert.Error(t, err) +} + func populateFederatedToken(t *testing.T, filename string, content string) { t.Helper()