From 6a53daad64f40072ae29c4f7a54ef2b8f790c4f7 Mon Sep 17 00:00:00 2001 From: Nick Been <66799549+nickbeen@users.noreply.github.com> Date: Mon, 4 Jul 2022 15:27:27 +0200 Subject: [PATCH] auroradns: update authentification (#1669) --- cmd/zz_gen_cmd_dnshelp.go | 4 +- docs/content/dns/zz_gen_auroradns.md | 12 ++--- go.mod | 8 ++-- go.sum | 13 +++-- providers/dns/auroradns/auroradns.go | 20 ++++---- providers/dns/auroradns/auroradns.toml | 10 ++-- providers/dns/auroradns/auroradns_test.go | 58 +++++++++++------------ 7 files changed, 63 insertions(+), 62 deletions(-) diff --git a/cmd/zz_gen_cmd_dnshelp.go b/cmd/zz_gen_cmd_dnshelp.go index eac2afad..db49a00e 100644 --- a/cmd/zz_gen_cmd_dnshelp.go +++ b/cmd/zz_gen_cmd_dnshelp.go @@ -214,8 +214,8 @@ func displayDNSHelp(name string) error { ew.writeln() ew.writeln(`Credentials:`) - ew.writeln(` - "AURORA_KEY": User API key`) - ew.writeln(` - "AURORA_USER_ID": User ID`) + ew.writeln(` - "AURORA_API_KEY": API key or username to used`) + ew.writeln(` - "AURORA_SECRET": Secret password to be used`) ew.writeln() ew.writeln(`Additional Configuration:`) diff --git a/docs/content/dns/zz_gen_auroradns.md b/docs/content/dns/zz_gen_auroradns.md index b0480f98..b03ea30f 100644 --- a/docs/content/dns/zz_gen_auroradns.md +++ b/docs/content/dns/zz_gen_auroradns.md @@ -6,7 +6,7 @@ slug: auroradns dnsprovider: since: "v0.4.0" code: "auroradns" - url: "https://www.pcextreme.com/aurora/dns" + url: "https://www.pcextreme.com/dns-health-checks" --- @@ -14,7 +14,7 @@ dnsprovider: -Configuration for [Aurora DNS](https://www.pcextreme.com/aurora/dns). +Configuration for [Aurora DNS](https://www.pcextreme.com/dns-health-checks). @@ -26,8 +26,8 @@ Configuration for [Aurora DNS](https://www.pcextreme.com/aurora/dns). Here is an example bash command using the Aurora DNS provider: ```bash -AURORA_USER_ID=xxxxx \ -AURORA_KEY=yyyyyy \ +AURORA_API_KEY=xxxxx \ +AURORA_SECRET_KEY=yyyyyy \ lego --email you@example.com --dns auroradns --domains my.example.org run ``` @@ -38,8 +38,8 @@ lego --email you@example.com --dns auroradns --domains my.example.org run | Environment Variable Name | Description | |-----------------------|-------------| -| `AURORA_KEY` | User API key | -| `AURORA_USER_ID` | User ID | +| `AURORA_API_KEY` | API key or username to used | +| `AURORA_SECRET` | Secret password to be used | The environment variable names can be suffixed by `_FILE` to reference a file instead of a value. More information [here]({{< ref "dns#configuration-and-credentials" >}}). diff --git a/go.mod b/go.mod index bd95f8cd..82825d96 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/mimuret/golang-iij-dpf v0.7.1 github.com/mitchellh/mapstructure v1.4.1 github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04 - github.com/nrdcg/auroradns v1.0.1 + github.com/nrdcg/auroradns v1.1.0 github.com/nrdcg/desec v0.6.0 github.com/nrdcg/dnspod-go v0.4.0 github.com/nrdcg/freemyip v0.2.0 @@ -48,7 +48,7 @@ require ( github.com/sacloud/libsacloud v1.36.2 github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20210127161313-bd30bebeac4f github.com/softlayer/softlayer-go v1.0.3 - github.com/stretchr/testify v1.7.1 + github.com/stretchr/testify v1.7.5 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.287 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.287 github.com/transip/gotransip/v6 v6.6.1 @@ -110,7 +110,7 @@ require ( github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9 // indirect github.com/softlayer/xmlrpc v0.0.0-20200409220501-5f089df7cb7e // indirect github.com/spf13/cast v1.3.1 // indirect - github.com/stretchr/objx v0.3.0 // indirect + github.com/stretchr/objx v0.4.0 // indirect go.opencensus.io v0.22.3 // indirect go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277 // indirect golang.org/x/mod v0.4.2 // indirect @@ -123,5 +123,5 @@ require ( google.golang.org/grpc v1.27.1 // indirect google.golang.org/protobuf v1.27.1 // indirect gopkg.in/ini.v1 v1.62.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 656ff80c..217b42ed 100644 --- a/go.sum +++ b/go.sum @@ -358,8 +358,8 @@ github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04/go.mod h1:5sN+Lt1CaY github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nrdcg/auroradns v1.0.1 h1:m/kBq83Xvy3cU261MOknd8BdnOk12q4lAWM+kOdsC2Y= -github.com/nrdcg/auroradns v1.0.1/go.mod h1:y4pc0i9QXYlFCWrhWrUSIETnZgrf4KuwjDIWmmXo3JI= +github.com/nrdcg/auroradns v1.1.0 h1:KekGh8kmf2MNwqZVVYo/fw/ZONt8QMEmbMFOeljteWo= +github.com/nrdcg/auroradns v1.1.0/go.mod h1:O7tViUZbAcnykVnrGkXzIJTHoQCHcgalgAe6X1mzHfk= github.com/nrdcg/desec v0.6.0 h1:kZ9JtsYEW3LNfuPIM+2tXoxoQlF9koWfQTWTQsA7Sr8= github.com/nrdcg/desec v0.6.0/go.mod h1:wybWg5cRrNmtXLYpUCPCLvz4jfFNEGZQEnoUiX9WqcY= github.com/nrdcg/dnspod-go v0.4.0 h1:c/jn1mLZNKF3/osJ6mz3QPxTudvPArXTjpkmYj0uK6U= @@ -473,15 +473,17 @@ github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5q github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.3.0 h1:NGXK3lHquSN08v5vWalVI/L8XU9hdzE/G6xsrze47As= github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.5 h1:s5PTfem8p8EbKQOctVV53k6jCJt3UX4IEJzwh+C324Q= +github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.287 h1:ohsyW4WffPdd2JLPio2Sd0qGr93hzkawAt9vWdCFLgY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.287/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= @@ -821,8 +823,9 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/providers/dns/auroradns/auroradns.go b/providers/dns/auroradns/auroradns.go index f8bb520a..2e2870b2 100644 --- a/providers/dns/auroradns/auroradns.go +++ b/providers/dns/auroradns/auroradns.go @@ -18,8 +18,8 @@ const defaultBaseURL = "https://api.auroradns.eu" const ( envNamespace = "AURORA_" - EnvUserID = envNamespace + "USER_ID" - EnvKey = envNamespace + "KEY" + EnvAPIKey = envNamespace + "API_KEY" + EnvSecret = envNamespace + "SECRET" EnvEndpoint = envNamespace + "ENDPOINT" EnvTTL = envNamespace + "TTL" @@ -30,8 +30,8 @@ const ( // Config is used to configure the creation of the DNSProvider. type Config struct { BaseURL string - UserID string - Key string + APIKey string + Secret string PropagationTimeout time.Duration PollingInterval time.Duration TTL int @@ -56,17 +56,17 @@ type DNSProvider struct { // NewDNSProvider returns a DNSProvider instance configured for AuroraDNS. // Credentials must be passed in the environment variables: -// AURORA_USER_ID and AURORA_KEY. +// AURORA_API_KEY and AURORA_SECRET. func NewDNSProvider() (*DNSProvider, error) { - values, err := env.Get(EnvUserID, EnvKey) + values, err := env.Get(EnvAPIKey, EnvSecret) if err != nil { return nil, fmt.Errorf("aurora: %w", err) } config := NewDefaultConfig() config.BaseURL = env.GetOrFile(EnvEndpoint) - config.UserID = values[EnvUserID] - config.Key = values[EnvKey] + config.APIKey = values[EnvAPIKey] + config.Secret = values[EnvSecret] return NewDNSProviderConfig(config) } @@ -77,7 +77,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) { return nil, errors.New("aurora: the configuration of the DNS provider is nil") } - if config.UserID == "" || config.Key == "" { + if config.APIKey == "" || config.Secret == "" { return nil, errors.New("aurora: some credentials information are missing") } @@ -85,7 +85,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) { config.BaseURL = defaultBaseURL } - tr, err := auroradns.NewTokenTransport(config.UserID, config.Key) + tr, err := auroradns.NewTokenTransport(config.APIKey, config.Secret) if err != nil { return nil, fmt.Errorf("aurora: %w", err) } diff --git a/providers/dns/auroradns/auroradns.toml b/providers/dns/auroradns/auroradns.toml index 26c0d6a3..4afaf718 100644 --- a/providers/dns/auroradns/auroradns.toml +++ b/providers/dns/auroradns/auroradns.toml @@ -1,19 +1,19 @@ Name = "Aurora DNS" Description = '''''' -URL = "https://www.pcextreme.com/aurora/dns" +URL = "https://www.pcextreme.com/dns-health-checks" Code = "auroradns" Since = "v0.4.0" Example = ''' -AURORA_USER_ID=xxxxx \ -AURORA_KEY=yyyyyy \ +AURORA_API_KEY=xxxxx \ +AURORA_SECRET=yyyyyy \ lego --email you@example.com --dns auroradns --domains my.example.org run ''' [Configuration] [Configuration.Credentials] - AURORA_USER_ID = "User ID" - AURORA_KEY = "User API key" + AURORA_API_KEY = "API key or username to used" + AURORA_SECRET = "Secret password to be used" [Configuration.Additional] AURORA_ENDPOINT = "API endpoint URL" AURORA_POLLING_INTERVAL = "Time between DNS propagation check" diff --git a/providers/dns/auroradns/auroradns_test.go b/providers/dns/auroradns/auroradns_test.go index 0a26b2ef..6e4aa54a 100644 --- a/providers/dns/auroradns/auroradns_test.go +++ b/providers/dns/auroradns/auroradns_test.go @@ -12,9 +12,7 @@ import ( "github.com/stretchr/testify/require" ) -var envTest = tester.NewEnvTest( - EnvUserID, - EnvKey) +var envTest = tester.NewEnvTest(EnvAPIKey, EnvSecret) func setupTest(t *testing.T) (*DNSProvider, *http.ServeMux) { t.Helper() @@ -24,8 +22,8 @@ func setupTest(t *testing.T) (*DNSProvider, *http.ServeMux) { t.Cleanup(server.Close) config := NewDefaultConfig() - config.UserID = "asdf1234" - config.Key = "key" + config.APIKey = "asdf1234" + config.Secret = "key" config.BaseURL = server.URL provider, err := NewDNSProviderConfig(config) @@ -43,33 +41,33 @@ func TestNewDNSProvider(t *testing.T) { { desc: "success", envVars: map[string]string{ - EnvUserID: "123", - EnvKey: "456", + EnvAPIKey: "123", + EnvSecret: "456", }, }, { desc: "missing credentials", envVars: map[string]string{ - EnvUserID: "", - EnvKey: "", + EnvAPIKey: "", + EnvSecret: "", }, - expected: "aurora: some credentials information are missing: AURORA_USER_ID,AURORA_KEY", + expected: "aurora: some credentials information are missing: AURORA_API_KEY,AURORA_SECRET", }, { - desc: "missing user id", + desc: "missing api key", envVars: map[string]string{ - EnvUserID: "", - EnvKey: "456", + EnvAPIKey: "", + EnvSecret: "456", }, - expected: "aurora: some credentials information are missing: AURORA_USER_ID", + expected: "aurora: some credentials information are missing: AURORA_API_KEY", }, { - desc: "missing key", + desc: "missing secret key", envVars: map[string]string{ - EnvUserID: "123", - EnvKey: "", + EnvAPIKey: "123", + EnvSecret: "", }, - expected: "aurora: some credentials information are missing: AURORA_KEY", + expected: "aurora: some credentials information are missing: AURORA_SECRET", }, } @@ -97,31 +95,31 @@ func TestNewDNSProvider(t *testing.T) { func TestNewDNSProviderConfig(t *testing.T) { testCases := []struct { desc string - userID string - key string + apiKey string + secret string expected string }{ { desc: "success", - userID: "123", - key: "456", + apiKey: "123", + secret: "456", }, { desc: "missing credentials", - userID: "", - key: "", + apiKey: "", + secret: "", expected: "aurora: some credentials information are missing", }, { desc: "missing user id", - userID: "", - key: "456", + apiKey: "", + secret: "456", expected: "aurora: some credentials information are missing", }, { desc: "missing key", - userID: "123", - key: "", + apiKey: "123", + secret: "", expected: "aurora: some credentials information are missing", }, } @@ -129,8 +127,8 @@ func TestNewDNSProviderConfig(t *testing.T) { for _, test := range testCases { t.Run(test.desc, func(t *testing.T) { config := NewDefaultConfig() - config.UserID = test.userID - config.Key = test.key + config.APIKey = test.apiKey + config.Secret = test.secret p, err := NewDNSProviderConfig(config)